2021-02-09 19:31:40 +00:00
|
|
|
# for things that are also used by kwin libraries
|
|
|
|
configure_file(libkwineffects/kwinconfig.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/libkwineffects/kwinconfig.h)
|
|
|
|
configure_file(config-kwin.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kwin.h)
|
|
|
|
|
|
|
|
set(kwin_effects_dbus_xml ${CMAKE_CURRENT_SOURCE_DIR}/org.kde.kwin.Effects.xml)
|
2021-05-30 23:00:35 +00:00
|
|
|
qt_add_dbus_interface(effects_interface_SRCS ${kwin_effects_dbus_xml} kwineffects_interface)
|
2021-02-09 19:31:40 +00:00
|
|
|
add_library(KWinEffectsInterface STATIC ${effects_interface_SRCS})
|
|
|
|
target_link_libraries(KWinEffectsInterface Qt::DBus)
|
|
|
|
|
|
|
|
add_subdirectory(effects)
|
|
|
|
add_subdirectory(scripts)
|
|
|
|
add_subdirectory(tabbox)
|
|
|
|
add_subdirectory(scripting)
|
|
|
|
add_subdirectory(helpers)
|
|
|
|
add_subdirectory(qml)
|
|
|
|
|
|
|
|
add_subdirectory(libkwineffects)
|
|
|
|
if (KWIN_BUILD_KCMS)
|
|
|
|
add_subdirectory(kcmkwin)
|
|
|
|
endif()
|
|
|
|
|
2022-01-22 11:11:37 +00:00
|
|
|
add_library(kwin SHARED)
|
|
|
|
set_target_properties(kwin PROPERTIES
|
|
|
|
VERSION ${PROJECT_VERSION}
|
|
|
|
SOVERSION ${PROJECT_VERSION_MAJOR}
|
|
|
|
)
|
|
|
|
|
|
|
|
target_sources(kwin PRIVATE
|
2021-02-09 19:31:40 +00:00
|
|
|
3rdparty/xcursor.c
|
|
|
|
activation.cpp
|
|
|
|
appmenu.cpp
|
|
|
|
atoms.cpp
|
|
|
|
client_machine.cpp
|
2022-01-10 12:15:54 +00:00
|
|
|
colordevice.cpp
|
|
|
|
colormanager.cpp
|
2022-01-05 11:41:07 +00:00
|
|
|
colors.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
composite.cpp
|
|
|
|
cursor.cpp
|
2022-04-12 13:14:23 +00:00
|
|
|
cursordelegate_opengl.cpp
|
|
|
|
cursordelegate_qpainter.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
dbusinterface.cpp
|
|
|
|
debug_console.cpp
|
2021-02-04 09:07:20 +00:00
|
|
|
decorationitem.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
decorations/decoratedclient.cpp
|
|
|
|
decorations/decorationbridge.cpp
|
|
|
|
decorations/decorationpalette.cpp
|
|
|
|
decorations/decorations_logging.cpp
|
|
|
|
decorations/settings.cpp
|
|
|
|
deleted.cpp
|
|
|
|
dmabuftexture.cpp
|
2021-07-08 23:13:24 +00:00
|
|
|
dpmsinputeventfilter.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
effectloader.cpp
|
|
|
|
effects.cpp
|
|
|
|
events.cpp
|
|
|
|
focuschain.cpp
|
|
|
|
ftrace.cpp
|
|
|
|
gestures.cpp
|
|
|
|
globalshortcuts.cpp
|
|
|
|
group.cpp
|
|
|
|
idle_inhibition.cpp
|
|
|
|
input.cpp
|
|
|
|
input_event.cpp
|
|
|
|
input_event_spy.cpp
|
2021-10-02 08:26:51 +00:00
|
|
|
inputbackend.cpp
|
|
|
|
inputdevice.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
inputmethod.cpp
|
|
|
|
inputpanelv1integration.cpp
|
2022-04-22 17:42:35 +00:00
|
|
|
inputpanelv1window.cpp
|
2022-04-22 17:45:19 +00:00
|
|
|
internalwindow.cpp
|
2021-02-04 09:07:20 +00:00
|
|
|
item.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
keyboard_input.cpp
|
|
|
|
keyboard_layout.cpp
|
|
|
|
keyboard_layout_switching.cpp
|
|
|
|
keyboard_repeat.cpp
|
|
|
|
killwindow.cpp
|
|
|
|
layers.cpp
|
|
|
|
layershellv1integration.cpp
|
2022-04-22 17:46:41 +00:00
|
|
|
layershellv1window.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
linux_dmabuf.cpp
|
|
|
|
main.cpp
|
|
|
|
modifier_only_shortcuts.cpp
|
|
|
|
moving_client_x11_filter.cpp
|
|
|
|
netinfo.cpp
|
|
|
|
onscreennotification.cpp
|
|
|
|
options.cpp
|
|
|
|
osd.cpp
|
|
|
|
outline.cpp
|
2022-04-14 12:33:28 +00:00
|
|
|
output.cpp
|
2022-04-14 10:51:20 +00:00
|
|
|
outputconfiguration.cpp
|
2022-02-05 17:00:25 +00:00
|
|
|
outputlayer.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
overlaywindow.cpp
|
|
|
|
placement.cpp
|
|
|
|
platform.cpp
|
|
|
|
plugin.cpp
|
|
|
|
pluginmanager.cpp
|
|
|
|
pointer_input.cpp
|
|
|
|
popup_input_filter.cpp
|
2021-11-10 10:34:18 +00:00
|
|
|
renderbackend.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
renderjournal.cpp
|
2022-02-04 18:38:37 +00:00
|
|
|
renderlayer.cpp
|
|
|
|
renderlayerdelegate.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
renderloop.cpp
|
2022-04-12 08:16:27 +00:00
|
|
|
rendertarget.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
rootinfo_filter.cpp
|
|
|
|
rulebooksettings.cpp
|
|
|
|
rules.cpp
|
|
|
|
scene.cpp
|
|
|
|
screenedge.cpp
|
|
|
|
screens.cpp
|
2021-08-02 12:50:14 +00:00
|
|
|
scripting/v2/clientmodel.cpp
|
2021-08-02 13:21:26 +00:00
|
|
|
scripting/v3/clientmodel.cpp
|
2021-08-03 07:30:20 +00:00
|
|
|
scripting/v3/virtualdesktopmodel.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
scripting/dbuscall.cpp
|
2021-12-03 14:37:53 +00:00
|
|
|
scripting/desktopbackgrounditem.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
scripting/screenedgeitem.cpp
|
|
|
|
scripting/scriptedeffect.cpp
|
|
|
|
scripting/scripting.cpp
|
|
|
|
scripting/scripting_logging.cpp
|
|
|
|
scripting/scriptingutils.cpp
|
2021-06-02 08:45:50 +00:00
|
|
|
scripting/thumbnailitem.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
scripting/workspace_wrapper.cpp
|
2021-01-30 13:22:07 +00:00
|
|
|
session.cpp
|
|
|
|
session_consolekit.cpp
|
|
|
|
session_logind.cpp
|
|
|
|
session_noop.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
shadow.cpp
|
2021-02-04 09:07:20 +00:00
|
|
|
shadowitem.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
sm.cpp
|
2021-02-04 09:07:20 +00:00
|
|
|
surfaceitem.cpp
|
|
|
|
surfaceitem_internal.cpp
|
|
|
|
surfaceitem_wayland.cpp
|
|
|
|
surfaceitem_x11.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
syncalarmx11filter.cpp
|
|
|
|
tablet_input.cpp
|
2021-11-29 14:49:38 +00:00
|
|
|
hide_cursor_spy.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
touch_input.cpp
|
|
|
|
udev.cpp
|
|
|
|
unmanaged.cpp
|
|
|
|
useractions.cpp
|
|
|
|
virtualdesktops.cpp
|
|
|
|
virtualdesktopsdbustypes.cpp
|
|
|
|
virtualkeyboard_dbus.cpp
|
|
|
|
was_user_interaction_x11_filter.cpp
|
|
|
|
wayland_server.cpp
|
2021-04-04 14:11:13 +00:00
|
|
|
waylandoutput.cpp
|
2021-07-21 10:11:21 +00:00
|
|
|
waylandoutputdevicev2.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
waylandshellintegration.cpp
|
2022-04-22 17:51:07 +00:00
|
|
|
waylandwindow.cpp
|
2022-04-22 17:39:12 +00:00
|
|
|
window.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
window_property_notify_x11_filter.cpp
|
2021-02-04 09:07:20 +00:00
|
|
|
windowitem.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
workspace.cpp
|
|
|
|
x11eventfilter.cpp
|
2021-06-11 11:11:57 +00:00
|
|
|
x11syncmanager.cpp
|
2022-04-22 17:54:31 +00:00
|
|
|
x11window.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
xcursortheme.cpp
|
2020-11-07 02:03:57 +00:00
|
|
|
xdgactivationv1.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
xdgshellclient.cpp
|
|
|
|
xdgshellintegration.cpp
|
|
|
|
xkb.cpp
|
|
|
|
xwaylandclient.cpp
|
2022-04-22 10:09:02 +00:00
|
|
|
xwayland/xwayland_interface.cpp
|
2021-02-09 19:31:40 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
target_link_libraries(kwin
|
|
|
|
kwineffects
|
|
|
|
kwinglutils
|
|
|
|
|
|
|
|
Qt::Concurrent
|
|
|
|
Qt::DBus
|
|
|
|
Qt::Quick
|
|
|
|
|
|
|
|
KF5::ConfigCore
|
|
|
|
KF5::ConfigWidgets
|
|
|
|
KF5::CoreAddons
|
|
|
|
KF5::GlobalAccel
|
|
|
|
KF5::GlobalAccelPrivate
|
|
|
|
KF5::I18n
|
|
|
|
KF5::Package
|
|
|
|
KF5::Plasma
|
|
|
|
KF5::WindowSystem
|
|
|
|
|
|
|
|
KDecoration2::KDecoration
|
|
|
|
KDecoration2::KDecoration2Private
|
|
|
|
|
|
|
|
XCB::COMPOSITE
|
2021-09-23 08:56:39 +00:00
|
|
|
XCB::CURSOR
|
2021-02-09 19:31:40 +00:00
|
|
|
XCB::DAMAGE
|
|
|
|
XCB::GLX
|
|
|
|
XCB::ICCCM
|
|
|
|
XCB::KEYSYMS
|
|
|
|
XCB::RANDR
|
|
|
|
XCB::RENDER
|
|
|
|
XCB::SHAPE
|
|
|
|
XCB::SHM
|
|
|
|
XCB::SYNC
|
|
|
|
XCB::XCB
|
|
|
|
XCB::XFIXES
|
|
|
|
|
|
|
|
UDev::UDev
|
2021-03-02 01:14:39 +00:00
|
|
|
XKB::XKB
|
2022-04-22 09:27:33 +00:00
|
|
|
EGL::EGL
|
2021-02-09 19:31:40 +00:00
|
|
|
epoxy::epoxy
|
|
|
|
|
2021-03-04 12:42:09 +00:00
|
|
|
Threads::Threads
|
2022-04-22 09:27:33 +00:00
|
|
|
Wayland::Server
|
2022-01-10 12:15:54 +00:00
|
|
|
lcms2::lcms2
|
2021-02-09 19:31:40 +00:00
|
|
|
)
|
2022-03-10 18:11:26 +00:00
|
|
|
if (QT_MAJOR_VERSION EQUAL "5")
|
|
|
|
target_link_libraries(kwin Qt5::XkbCommonSupportPrivate)
|
|
|
|
endif()
|
2021-02-09 19:31:40 +00:00
|
|
|
|
2022-02-25 09:38:26 +00:00
|
|
|
if (KWIN_BUILD_NOTIFICATIONS)
|
|
|
|
target_link_libraries(kwin KF5::Notifications)
|
|
|
|
endif()
|
|
|
|
|
2022-01-22 11:11:37 +00:00
|
|
|
kconfig_add_kcfg_files(kwin
|
|
|
|
settings.kcfgc
|
|
|
|
rulesettings.kcfgc
|
|
|
|
rulebooksettingsbase.kcfgc
|
|
|
|
)
|
|
|
|
|
|
|
|
ki18n_wrap_ui(kwin
|
|
|
|
debug_console.ui
|
|
|
|
shortcutdialog.ui
|
|
|
|
)
|
|
|
|
|
|
|
|
set(kwin_dbus_SRCS)
|
|
|
|
qt_add_dbus_adaptor(kwin_dbus_SRCS scripting/org.kde.kwin.Script.xml scripting/scripting.h KWin::AbstractScript)
|
|
|
|
qt_add_dbus_adaptor(kwin_dbus_SRCS org.kde.KWin.xml dbusinterface.h KWin::DBusInterface)
|
|
|
|
qt_add_dbus_adaptor(kwin_dbus_SRCS org.kde.kwin.Compositing.xml dbusinterface.h KWin::CompositorDBusInterface)
|
|
|
|
qt_add_dbus_adaptor(kwin_dbus_SRCS ${kwin_effects_dbus_xml} effects.h KWin::EffectsHandlerImpl)
|
|
|
|
qt_add_dbus_adaptor(kwin_dbus_SRCS org.kde.KWin.VirtualDesktopManager.xml dbusinterface.h KWin::VirtualDesktopManagerDBusInterface)
|
|
|
|
qt_add_dbus_adaptor(kwin_dbus_SRCS org.kde.KWin.Session.xml sm.h KWin::SessionManager)
|
|
|
|
qt_add_dbus_adaptor(kwin_dbus_SRCS org.kde.KWin.Plugins.xml dbusinterface.h KWin::PluginManagerDBusInterface)
|
|
|
|
|
2022-02-23 13:27:05 +00:00
|
|
|
if (KWIN_BUILD_SCREENLOCKER)
|
|
|
|
qt_add_dbus_interface(kwin_dbus_SRCS ${KSCREENLOCKER_DBUS_INTERFACES_DIR}/kf5_org.freedesktop.ScreenSaver.xml screenlocker_interface)
|
|
|
|
qt_add_dbus_interface(kwin_dbus_SRCS ${KSCREENLOCKER_DBUS_INTERFACES_DIR}/org.kde.screensaver.xml kscreenlocker_interface)
|
|
|
|
endif()
|
|
|
|
|
2022-01-22 11:11:37 +00:00
|
|
|
qt_add_dbus_interface(kwin_dbus_SRCS org.kde.kappmenu.xml appmenu_interface)
|
|
|
|
|
|
|
|
target_sources(kwin PRIVATE
|
|
|
|
${kwin_dbus_SRCS}
|
|
|
|
)
|
|
|
|
|
2021-10-27 09:13:09 +00:00
|
|
|
add_subdirectory(backends)
|
2021-11-08 09:39:24 +00:00
|
|
|
add_subdirectory(scenes)
|
2022-01-13 13:54:03 +00:00
|
|
|
add_subdirectory(utils)
|
2022-04-22 09:27:33 +00:00
|
|
|
add_subdirectory(wayland)
|
2022-04-22 10:09:02 +00:00
|
|
|
add_subdirectory(xwayland)
|
2021-10-27 09:13:09 +00:00
|
|
|
|
2021-02-09 19:31:40 +00:00
|
|
|
if (KWIN_BUILD_ACTIVITIES)
|
|
|
|
target_sources(kwin PRIVATE activities.cpp)
|
|
|
|
target_link_libraries(kwin KF5::Activities)
|
|
|
|
endif()
|
|
|
|
|
2022-02-23 13:27:05 +00:00
|
|
|
if (KWIN_BUILD_SCREENLOCKER)
|
|
|
|
target_sources(kwin PRIVATE screenlockerwatcher.cpp)
|
|
|
|
target_link_libraries(kwin PW::KScreenLocker)
|
|
|
|
endif()
|
|
|
|
|
2021-02-09 19:31:40 +00:00
|
|
|
if (KWIN_BUILD_TABBOX)
|
|
|
|
target_sources(kwin PRIVATE
|
|
|
|
tabbox/clientmodel.cpp
|
|
|
|
tabbox/desktopchain.cpp
|
|
|
|
tabbox/desktopmodel.cpp
|
|
|
|
tabbox/switcheritem.cpp
|
|
|
|
tabbox/tabbox.cpp
|
|
|
|
tabbox/tabbox_logging.cpp
|
|
|
|
tabbox/tabboxconfig.cpp
|
|
|
|
tabbox/tabboxhandler.cpp
|
|
|
|
tabbox/x11_filter.cpp
|
|
|
|
)
|
|
|
|
target_link_libraries(kwin Qt::GuiPrivate)
|
|
|
|
endif()
|
|
|
|
|
2022-03-09 16:31:43 +00:00
|
|
|
qt_generate_dbus_interface(virtualkeyboard_dbus.h org.kde.kwin.VirtualKeyboard.xml OPTIONS -A)
|
|
|
|
qt_generate_dbus_interface(tabletmodemanager.h org.kde.KWin.TabletModeManager.xml OPTIONS -A)
|
2021-02-23 15:12:38 +00:00
|
|
|
|
2021-02-09 19:31:40 +00:00
|
|
|
generate_export_header(kwin EXPORT_FILE_NAME kwin_export.h)
|
|
|
|
|
|
|
|
add_executable(kwin_x11 main_x11.cpp)
|
2021-10-12 11:06:31 +00:00
|
|
|
target_link_libraries(kwin_x11
|
|
|
|
kwin
|
|
|
|
KF5::Crash
|
|
|
|
)
|
2022-03-09 16:25:44 +00:00
|
|
|
if (QT_MAJOR_VERSION EQUAL "5")
|
|
|
|
target_link_libraries(kwin_x11 Qt::X11Extras)
|
|
|
|
endif()
|
2022-02-05 23:28:48 +00:00
|
|
|
kcoreaddons_target_static_plugins(kwin_x11 "kwin/effects/plugins")
|
2021-02-09 19:31:40 +00:00
|
|
|
|
|
|
|
install(TARGETS kwin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP)
|
|
|
|
install(TARGETS kwin_x11 ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
|
|
|
|
|
|
|
|
add_executable(kwin_wayland
|
|
|
|
main_wayland.cpp
|
|
|
|
tabletmodemanager.cpp
|
|
|
|
)
|
|
|
|
target_link_libraries(kwin_wayland
|
|
|
|
kwin
|
|
|
|
KF5::Crash
|
|
|
|
KWinXwaylandServerModule
|
|
|
|
)
|
2022-02-05 23:28:48 +00:00
|
|
|
kcoreaddons_target_static_plugins(kwin_wayland "kwin/effects/plugins")
|
2021-02-09 19:31:40 +00:00
|
|
|
if (HAVE_LIBCAP)
|
|
|
|
target_link_libraries(kwin_wayland ${Libcap_LIBRARIES})
|
|
|
|
endif()
|
|
|
|
|
|
|
|
install(TARGETS kwin_wayland ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
|
|
|
|
if (HAVE_LIBCAP)
|
|
|
|
install(
|
|
|
|
CODE "execute_process(
|
|
|
|
COMMAND
|
|
|
|
${SETCAP_EXECUTABLE}
|
|
|
|
CAP_SYS_NICE=+ep
|
|
|
|
\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_BINDIR}/kwin_wayland)"
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
add_subdirectory(platformsupport)
|
|
|
|
add_subdirectory(plugins)
|
|
|
|
|
|
|
|
target_link_libraries(kwin_wayland
|
|
|
|
KWinQpaPlugin
|
|
|
|
KF5GlobalAccelKWinPlugin
|
|
|
|
KF5WindowSystemKWinPlugin
|
|
|
|
KF5IdleTimeKWinPlugin
|
|
|
|
)
|
|
|
|
|
2021-02-23 15:12:38 +00:00
|
|
|
add_custom_target(
|
|
|
|
KWinDBusInterfaces
|
|
|
|
ALL
|
|
|
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kwin.VirtualKeyboard.xml
|
2021-11-08 19:30:54 +00:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/org.kde.KWin.TabletModeManager.xml
|
2021-02-23 15:12:38 +00:00
|
|
|
)
|
|
|
|
|
2021-02-09 19:31:40 +00:00
|
|
|
if (PipeWire_FOUND)
|
|
|
|
target_link_libraries(kwin_wayland KWinScreencastPlugin)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
install(FILES kwin.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR} RENAME ${KWIN_NAME}.kcfg)
|
2022-02-25 09:38:26 +00:00
|
|
|
if (KWIN_BUILD_NOTIFICATIONS)
|
2022-03-09 16:31:43 +00:00
|
|
|
install(FILES kwin.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR} RENAME ${KWIN_NAME}.notifyrc)
|
2022-02-25 09:38:26 +00:00
|
|
|
endif()
|
2021-02-09 19:31:40 +00:00
|
|
|
install(
|
|
|
|
FILES
|
|
|
|
org.kde.KWin.VirtualDesktopManager.xml
|
|
|
|
org.kde.KWin.xml
|
|
|
|
org.kde.kwin.Compositing.xml
|
|
|
|
org.kde.kwin.Effects.xml
|
|
|
|
org.kde.KWin.Plugins.xml
|
2021-02-23 15:12:38 +00:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/org.kde.kwin.VirtualKeyboard.xml
|
2021-11-08 19:30:54 +00:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/org.kde.KWin.TabletModeManager.xml
|
2021-02-09 19:31:40 +00:00
|
|
|
DESTINATION
|
|
|
|
${KDE_INSTALL_DBUSINTERFACEDIR}
|
|
|
|
)
|
|
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kwin_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR} COMPONENT Devel)
|
|
|
|
|
|
|
|
# Install the KWin/Script service type
|
2022-03-09 16:31:43 +00:00
|
|
|
install(FILES scripting/kwinscript.desktop DESTINATION ${KDE_INSTALL_KSERVICETYPESDIR})
|