a-la-karte/src/CMakeLists.txt

194 lines
5.1 KiB
Text
Raw Normal View History

# SPDX-License-Identifier: BSD-3-Clause
# SPDX-FileCopyrightText: 2026 A-La-Karte Contributors
add_executable(alakarte
main.cpp
app.cpp
Add Plasma tray, notification inhibition, session control, and flatpak runner Expand TrayController with daemon health polling every 10 seconds via D-Bus Ping calls to org.kde.GameCenter1, org.kde.ALaKarte.Runner1, and org.kde.ALaKarte.Input1. Add menu actions to toggle console behaviors, notification mirroring, and to restart each daemon via systemctl --user. Add NotificationInhibitor, owned by App, which calls org.freedesktop.Notifications Inhibit/UnInhibit on the session bus whenever the consoleBehaviors config setting changes. The cookie is released on application quit. Add consoleBehaviors and mirrorNotifications properties to Config with KConfig persistence under the [Console] group. Ship org.kde.alakarte.notifyrc defining GameLaunched, GameExited, and LaunchFailed notification events so Plasma attributes them correctly in the notification history. Extend RunnerManagerDaemon::ResolveLaunch with a flatpak runner branch that constructs a flatpak run command, translates environment overrides to --env= arguments, and respects flatpakAppId, flatpakBranch, flatpakArch, and flatpakArgs from the launch spec. Add activate_session, switch_to_vt, and terminate_session actions to the gamecenter KAuth helper and its polkit policy. Each action calls the corresponding method on org.freedesktop.login1 over the system bus. Add CouchSidebar.qml, a horizontal source tab bar shown in couch mode above the library view, exposing the same sourceSelected, settingsRequested, importRequested, and aboutRequested signals as SidebarView. Fix duplicate adaptiveFocusRingWidth property in GameCard.qml.
2026-03-22 15:53:09 +00:00
notificationinhibitor.cpp
gamemodel.cpp
gamesortfiltermodel.cpp
game.cpp
gamepadmanager.cpp
inputmanager.cpp
inputserviceclient.cpp
mediamanager.cpp
2026-02-09 13:01:15 +00:00
runnermanagerclient.cpp
screenshotmodel.cpp
platformimporter.cpp
steamimporter.cpp
lutrisimporter.cpp
heroicimporter.cpp
desktopimporter.cpp
bottlesimporter.cpp
flatpakimporter.cpp
itchimporter.cpp
legendaryimporter.cpp
retroarchimporter.cpp
steamgriddb.cpp
gamelauncher.cpp
config.cpp
)
2026-02-15 12:55:09 +00:00
set(alakarte_dbus_sources)
qt_add_dbus_interface(alakarte_dbus_sources
${CMAKE_SOURCE_DIR}/src/gamecenter/dbus/org.kde.GameCenter1.xml
gamecenter1interface
)
qt_add_dbus_interface(alakarte_dbus_sources
${CMAKE_SOURCE_DIR}/src/runner/dbus/org.kde.ALaKarte.Runner1.xml
runner1interface
)
qt_add_dbus_interface(alakarte_dbus_sources
${CMAKE_SOURCE_DIR}/src/input/dbus/org.kde.ALaKarte.Input1.xml
input1interface
)
2026-02-15 12:55:09 +00:00
target_sources(alakarte PRIVATE
${alakarte_dbus_sources}
)
target_include_directories(alakarte PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
)
set_source_files_properties(qml/icons/app/org.kde.alakarte.svg PROPERTIES
QT_RESOURCE_ALIAS "sc-apps-org.kde.alakarte.svg"
)
qt_add_resources(alakarte alakarte_app_icon
PREFIX "/icons"
FILES
qml/icons/app/org.kde.alakarte.svg
)
target_link_libraries(alakarte PRIVATE
Qt6::Core
Qt6::Quick
Qt6::QuickControls2
Qt6::Gui
Add Plasma tray, notification inhibition, session control, and flatpak runner Expand TrayController with daemon health polling every 10 seconds via D-Bus Ping calls to org.kde.GameCenter1, org.kde.ALaKarte.Runner1, and org.kde.ALaKarte.Input1. Add menu actions to toggle console behaviors, notification mirroring, and to restart each daemon via systemctl --user. Add NotificationInhibitor, owned by App, which calls org.freedesktop.Notifications Inhibit/UnInhibit on the session bus whenever the consoleBehaviors config setting changes. The cookie is released on application quit. Add consoleBehaviors and mirrorNotifications properties to Config with KConfig persistence under the [Console] group. Ship org.kde.alakarte.notifyrc defining GameLaunched, GameExited, and LaunchFailed notification events so Plasma attributes them correctly in the notification history. Extend RunnerManagerDaemon::ResolveLaunch with a flatpak runner branch that constructs a flatpak run command, translates environment overrides to --env= arguments, and respects flatpakAppId, flatpakBranch, flatpakArch, and flatpakArgs from the launch spec. Add activate_session, switch_to_vt, and terminate_session actions to the gamecenter KAuth helper and its polkit policy. Each action calls the corresponding method on org.freedesktop.login1 over the system bus. Add CouchSidebar.qml, a horizontal source tab bar shown in couch mode above the library view, exposing the same sourceSelected, settingsRequested, importRequested, and aboutRequested signals as SidebarView. Fix duplicate adaptiveFocusRingWidth property in GameCard.qml.
2026-03-22 15:53:09 +00:00
Qt6::Widgets
Qt6::Network
Qt6::Sql
Qt6::Concurrent
Qt6::DBus
Qt6::Svg
SDL3::SDL3
KF6::Kirigami
KF6::I18n
KF6::CoreAddons
KF6::ConfigCore
KF6::ConfigGui
KF6::Crash
KF6::DBusAddons
KF6::WindowSystem
)
Add Plasma tray, notification inhibition, session control, and flatpak runner Expand TrayController with daemon health polling every 10 seconds via D-Bus Ping calls to org.kde.GameCenter1, org.kde.ALaKarte.Runner1, and org.kde.ALaKarte.Input1. Add menu actions to toggle console behaviors, notification mirroring, and to restart each daemon via systemctl --user. Add NotificationInhibitor, owned by App, which calls org.freedesktop.Notifications Inhibit/UnInhibit on the session bus whenever the consoleBehaviors config setting changes. The cookie is released on application quit. Add consoleBehaviors and mirrorNotifications properties to Config with KConfig persistence under the [Console] group. Ship org.kde.alakarte.notifyrc defining GameLaunched, GameExited, and LaunchFailed notification events so Plasma attributes them correctly in the notification history. Extend RunnerManagerDaemon::ResolveLaunch with a flatpak runner branch that constructs a flatpak run command, translates environment overrides to --env= arguments, and respects flatpakAppId, flatpakBranch, flatpakArch, and flatpakArgs from the launch spec. Add activate_session, switch_to_vt, and terminate_session actions to the gamecenter KAuth helper and its polkit policy. Each action calls the corresponding method on org.freedesktop.login1 over the system bus. Add CouchSidebar.qml, a horizontal source tab bar shown in couch mode above the library view, exposing the same sourceSelected, settingsRequested, importRequested, and aboutRequested signals as SidebarView. Fix duplicate adaptiveFocusRingWidth property in GameCard.qml.
2026-03-22 15:53:09 +00:00
if (KF6StatusNotifierItem_FOUND)
target_sources(alakarte PRIVATE
traycontroller.cpp
traycontroller.h
)
target_compile_definitions(alakarte PRIVATE
ALAKARTE_HAVE_STATUSNOTIFIERITEM
)
target_link_libraries(alakarte PRIVATE
KF6::StatusNotifierItem
)
endif()
ecm_add_qml_module(alakarte URI org.kde.alakarte
VERSION 1.0
QML_FILES
qml/Main.qml
qml/LibraryView.qml
Add Plasma tray, notification inhibition, session control, and flatpak runner Expand TrayController with daemon health polling every 10 seconds via D-Bus Ping calls to org.kde.GameCenter1, org.kde.ALaKarte.Runner1, and org.kde.ALaKarte.Input1. Add menu actions to toggle console behaviors, notification mirroring, and to restart each daemon via systemctl --user. Add NotificationInhibitor, owned by App, which calls org.freedesktop.Notifications Inhibit/UnInhibit on the session bus whenever the consoleBehaviors config setting changes. The cookie is released on application quit. Add consoleBehaviors and mirrorNotifications properties to Config with KConfig persistence under the [Console] group. Ship org.kde.alakarte.notifyrc defining GameLaunched, GameExited, and LaunchFailed notification events so Plasma attributes them correctly in the notification history. Extend RunnerManagerDaemon::ResolveLaunch with a flatpak runner branch that constructs a flatpak run command, translates environment overrides to --env= arguments, and respects flatpakAppId, flatpakBranch, flatpakArch, and flatpakArgs from the launch spec. Add activate_session, switch_to_vt, and terminate_session actions to the gamecenter KAuth helper and its polkit policy. Each action calls the corresponding method on org.freedesktop.login1 over the system bus. Add CouchSidebar.qml, a horizontal source tab bar shown in couch mode above the library view, exposing the same sourceSelected, settingsRequested, importRequested, and aboutRequested signals as SidebarView. Fix duplicate adaptiveFocusRingWidth property in GameCard.qml.
2026-03-22 15:53:09 +00:00
qml/CouchSidebar.qml
qml/GameCard.qml
qml/GameDetailsSheet.qml
2026-01-30 10:02:28 +00:00
qml/DiagnosticsSheet.qml
qml/SettingsPage.qml
qml/SidebarView.qml
qml/GameEditDialog.qml
qml/components/GameGridView.qml
qml/components/SearchHeader.qml
qml/components/IconWithResourceFallback.qml
qml/components/EmptyState.qml
qml/components/BottomHintBar.qml
RESOURCES
qml/icons/brand/steam-symbolic.svg
qml/icons/brand/itchdotio-symbolic.svg
qml/icons/brand/retroarch-symbolic.svg
qml/icons/app/org.kde.alakarte.svg
qml/icons/gamepad/playstation/cross.svg
qml/icons/gamepad/playstation/circle.svg
qml/icons/gamepad/playstation/square.svg
qml/icons/gamepad/playstation/triangle.svg
qml/icons/gamepad/playstation/options.svg
qml/icons/gamepad/playstation/share.svg
qml/icons/gamepad/xbox/a.svg
qml/icons/gamepad/xbox/b.svg
qml/icons/gamepad/xbox/x.svg
qml/icons/gamepad/xbox/y.svg
qml/icons/gamepad/xbox/menu.svg
qml/icons/gamepad/xbox/view.svg
qml/icons/gamepad/nintendo/a.svg
qml/icons/gamepad/nintendo/b.svg
qml/icons/gamepad/nintendo/x.svg
qml/icons/gamepad/nintendo/y.svg
qml/icons/gamepad/nintendo/plus.svg
qml/icons/gamepad/nintendo/minus.svg
qml/icons/gamepad/nintendo/home.svg
qml/icons/gamepad/generic/south.svg
qml/icons/gamepad/generic/east.svg
qml/icons/gamepad/generic/west.svg
qml/icons/gamepad/generic/north.svg
qml/icons/gamepad/generic/lb.svg
qml/icons/gamepad/generic/rb.svg
qml/icons/gamepad/generic/lt.svg
qml/icons/gamepad/generic/rt.svg
qml/icons/gamepad/generic/dpad.svg
qml/icons/gamepad/generic/dpad-up.svg
qml/icons/gamepad/generic/dpad-down.svg
qml/icons/gamepad/generic/dpad-left.svg
qml/icons/gamepad/generic/dpad-right.svg
qml/icons/gamepad/generic/lstick.svg
qml/icons/gamepad/generic/rstick.svg
qml/icons/gamepad/generic/menu.svg
qml/icons/gamepad/generic/back.svg
SOURCES
app.h
gamemodel.h
gamesortfiltermodel.h
game.h
gamepadmanager.h
inputmanager.h
inputserviceclient.h
platformimporter.h
steamimporter.h
lutrisimporter.h
heroicimporter.h
desktopimporter.h
bottlesimporter.h
flatpakimporter.h
itchimporter.h
legendaryimporter.h
retroarchimporter.h
steamgriddb.h
gamelauncher.h
config.h
)
install(TARGETS alakarte ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
Add Plasma tray, notification inhibition, session control, and flatpak runner Expand TrayController with daemon health polling every 10 seconds via D-Bus Ping calls to org.kde.GameCenter1, org.kde.ALaKarte.Runner1, and org.kde.ALaKarte.Input1. Add menu actions to toggle console behaviors, notification mirroring, and to restart each daemon via systemctl --user. Add NotificationInhibitor, owned by App, which calls org.freedesktop.Notifications Inhibit/UnInhibit on the session bus whenever the consoleBehaviors config setting changes. The cookie is released on application quit. Add consoleBehaviors and mirrorNotifications properties to Config with KConfig persistence under the [Console] group. Ship org.kde.alakarte.notifyrc defining GameLaunched, GameExited, and LaunchFailed notification events so Plasma attributes them correctly in the notification history. Extend RunnerManagerDaemon::ResolveLaunch with a flatpak runner branch that constructs a flatpak run command, translates environment overrides to --env= arguments, and respects flatpakAppId, flatpakBranch, flatpakArch, and flatpakArgs from the launch spec. Add activate_session, switch_to_vt, and terminate_session actions to the gamecenter KAuth helper and its polkit policy. Each action calls the corresponding method on org.freedesktop.login1 over the system bus. Add CouchSidebar.qml, a horizontal source tab bar shown in couch mode above the library view, exposing the same sourceSelected, settingsRequested, importRequested, and aboutRequested signals as SidebarView. Fix duplicate adaptiveFocusRingWidth property in GameCard.qml.
2026-03-22 15:53:09 +00:00
install(FILES org.kde.alakarte.notifyrc
DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR}
)
add_subdirectory(gamecenter)
2026-02-09 13:01:15 +00:00
add_subdirectory(runner)
add_subdirectory(input)