diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH} ) -find_package(ECM 0.0.11 REQUIRED NO_MODULE) +find_package(ECM 5.38 REQUIRED NO_MODULE) include(FeatureSummary) include(WriteBasicConfigVersionFile) diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -17,16 +17,16 @@ set( testScreenPaintData_SRCS test_screen_paint_data.cpp ) add_executable(testScreenPaintData ${testScreenPaintData_SRCS}) target_link_libraries( testScreenPaintData kwineffects Qt5::Test Qt5::Widgets KF5::WindowSystem) -add_test(kwin-testScreenPaintData testScreenPaintData) +add_test(NAME kwin-testScreenPaintData COMMAND testScreenPaintData) ecm_mark_as_test(testScreenPaintData) ######################################################## # Test WindowPaintData ######################################################## set( testWindowPaintData_SRCS test_window_paint_data.cpp ) add_executable(testWindowPaintData ${testWindowPaintData_SRCS}) target_link_libraries( testWindowPaintData kwineffects Qt5::Widgets Qt5::Test ) -add_test(kwin-testWindowPaintData testWindowPaintData) +add_test(NAME kwin-testWindowPaintData COMMAND testWindowPaintData) ecm_mark_as_test(testWindowPaintData) ######################################################## @@ -46,7 +46,7 @@ KF5::ConfigCore KF5::WindowSystem ) -add_test(kwin-testVirtualDesktops testVirtualDesktops) +add_test(NAME kwin-testVirtualDesktops COMMAND testVirtualDesktops) ecm_mark_as_test(testVirtualDesktops) ######################################################## @@ -70,7 +70,7 @@ XCB::XFIXES ${X11_X11_LIB} # to make jenkins happy ) -add_test(kwin-testClientMachine testClientMachine) +add_test(NAME kwin-testClientMachine COMMAND testClientMachine) ecm_mark_as_test(testClientMachine) ######################################################## @@ -89,7 +89,7 @@ KF5::WindowSystem XCB::XCB ) -add_test(kwin-testXcbWrapper testXcbWrapper) +add_test(NAME kwin-testXcbWrapper COMMAND testXcbWrapper) ecm_mark_as_test(testXcbWrapper) if (XCB_ICCCM_FOUND) @@ -104,7 +104,7 @@ XCB::XCB XCB::ICCCM ) - add_test(kwin-testXcbSizeHints testXcbSizeHints) + add_test(NAME kwin-testXcbSizeHints COMMAND testXcbSizeHints) ecm_mark_as_test(testXcbSizeHints) endif() @@ -124,7 +124,7 @@ KF5::WindowSystem XCB::XCB ) -add_test(kwin-testXcbWindow testXcbWindow) +add_test(NAME kwin-testXcbWindow COMMAND testXcbWindow) ecm_mark_as_test(testXcbWindow) ######################################################## @@ -147,7 +147,7 @@ kwin4_effect_builtins ) -add_test(kwin-testBuiltInEffectLoader testBuiltInEffectLoader) +add_test(NAME kwin-testBuiltInEffectLoader COMMAND testBuiltInEffectLoader) ecm_mark_as_test(testBuiltInEffectLoader) ######################################################## @@ -186,7 +186,7 @@ kwin4_effect_builtins ) -add_test(kwin-testScriptedEffectLoader testScriptedEffectLoader) +add_test(NAME kwin-testScriptedEffectLoader COMMAND testScriptedEffectLoader) ecm_mark_as_test(testScriptedEffectLoader) ######################################################## @@ -208,7 +208,7 @@ kwin4_effect_builtins ) -add_test(kwin-testPluginEffectLoader testPluginEffectLoader) +add_test(NAME kwin-testPluginEffectLoader COMMAND testPluginEffectLoader) ecm_mark_as_test(testPluginEffectLoader) ######################################################## @@ -254,7 +254,7 @@ KF5::WindowSystem ) -add_test(kwin_testScreens testScreens) +add_test(NAME kwin_testScreens COMMAND testScreens) ecm_mark_as_test(testScreens) ######################################################## @@ -293,7 +293,7 @@ XCB::SHM ) -add_test(kwin-testXRandRScreens testXRandRScreens) +add_test(NAME kwin-testXRandRScreens COMMAND testXRandRScreens) ecm_mark_as_test(testXRandRScreens) ######################################################## @@ -341,7 +341,7 @@ XCB::SHM ) -add_test(kwin_testScreenEdges testScreenEdges) +add_test(NAME kwin_testScreenEdges COMMAND testScreenEdges) ecm_mark_as_test(testScreenEdges) ######################################################## @@ -361,7 +361,7 @@ KF5::ConfigCore ) -add_test(kwin-testOnScreenNotification testOnScreenNotification) +add_test(NAME kwin-testOnScreenNotification COMMAND testOnScreenNotification) ecm_mark_as_test(testOnScreenNotification) ######################################################## @@ -377,20 +377,19 @@ Qt5::Test ) -add_test(kwin-testGestures testGestures) +add_test(NAME kwin-testGestures COMMAND testGestures) ecm_mark_as_test(testGestures) ######################################################## # Test X11 TimestampUpdate ######################################################## add_executable(testX11TimestampUpdate test_x11_timestamp_update.cpp) -target_compile_definitions(testX11TimestampUpdate PRIVATE KWINBACKENDPATH="${CMAKE_BINARY_DIR}/plugins/platforms/x11/standalone/KWinX11Platform.so") target_link_libraries(testX11TimestampUpdate Qt5::Test KF5::CoreAddons kwin ) -add_test(kwin-testX11TimestampUpdate testX11TimestampUpdate) +add_test(NAME kwin-testX11TimestampUpdate COMMAND testX11TimestampUpdate) ecm_mark_as_test(testX11TimestampUpdate) set(testOpenGLContextAttributeBuilder_SRCS @@ -404,7 +403,7 @@ endif() add_executable(testOpenGLContextAttributeBuilder ${testOpenGLContextAttributeBuilder_SRCS}) target_link_libraries(testOpenGLContextAttributeBuilder Qt5::Test) -add_test(kwin-testOpenGLContextAttributeBuilder testOpenGLContextAttributeBuilder) +add_test(NAME kwin-testOpenGLContextAttributeBuilder COMMAND testOpenGLContextAttributeBuilder) ecm_mark_as_test(testOpenGLContextAttributeBuilder) set(testXkb_SRCS @@ -421,21 +420,21 @@ KF5::WaylandServer XKB::XKB ) -add_test(kwin-testXkb testXkb) +add_test(NAME kwin-testXkb COMMAND testXkb) ecm_mark_as_test(testXkb) if(HAVE_GBM) add_executable(testGbmSurface test_gbm_surface.cpp ../plugins/platforms/drm/gbm_surface.cpp) target_link_libraries(testGbmSurface Qt5::Test) - add_test(kwin-testGbmSurface testGbmSurface) + add_test(NAME kwin-testGbmSurface COMMAND testGbmSurface) ecm_mark_as_test(testGbmSurface) endif() add_executable(testVirtualKeyboardDBus test_virtualkeyboard_dbus.cpp ../virtualkeyboard_dbus.cpp) target_link_libraries(testVirtualKeyboardDBus Qt5::Test Qt5::DBus ) -add_test(kwin-testVirtualKeyboardDBus testVirtualKeyboardDBus) +add_test(NAME kwin-testVirtualKeyboardDBus COMMAND testVirtualKeyboardDBus) ecm_mark_as_test(testVirtualKeyboardDBus) diff --git a/autotests/drm/CMakeLists.txt b/autotests/drm/CMakeLists.txt --- a/autotests/drm/CMakeLists.txt +++ b/autotests/drm/CMakeLists.txt @@ -19,7 +19,7 @@ cmake_parse_arguments(ARGS "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) add_executable(${ARGS_NAME} ${ARGS_SRCS}) target_link_libraries(${ARGS_NAME} mockDrm Qt5::Test) - add_test(kwin-drm-${ARGS_NAME} ${ARGS_NAME}) + add_test(NAME kwin-drm-${ARGS_NAME} COMMAND ${ARGS_NAME}) ecm_mark_as_test(${ARGS_NAME}) endfunction() diff --git a/autotests/integration/CMakeLists.txt b/autotests/integration/CMakeLists.txt --- a/autotests/integration/CMakeLists.txt +++ b/autotests/integration/CMakeLists.txt @@ -1,5 +1,3 @@ -add_definitions(-DKWINBACKENDPATH="${CMAKE_BINARY_DIR}/plugins/platforms/virtual/KWinWaylandVirtualBackend.so") -add_definitions(-DKWINQPAPATH="${CMAKE_BINARY_DIR}/plugins/qpa/") add_subdirectory(helper) add_library(KWinIntegrationTestFramework STATIC kwin_wayland_test.cpp test_helpers.cpp) @@ -12,12 +10,12 @@ cmake_parse_arguments(ARGS "${optionArgs}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) add_executable(${ARGS_NAME} ${ARGS_SRCS}) target_link_libraries(${ARGS_NAME} KWinIntegrationTestFramework kwin Qt5::Test ${ARGS_LIBS}) - add_test(NAME kwin-${ARGS_NAME} COMMAND dbus-run-session ${CMAKE_CURRENT_BINARY_DIR}/${ARGS_NAME}) + add_test(NAME kwin-${ARGS_NAME} COMMAND dbus-run-session ${CMAKE_BINARY_DIR}/bin/${ARGS_NAME}) if (${ARGS_WAYLAND_ONLY}) add_executable(${ARGS_NAME}_waylandonly ${ARGS_SRCS}) set_target_properties(${ARGS_NAME}_waylandonly PROPERTIES COMPILE_DEFINITIONS "NO_XWAYLAND") target_link_libraries(${ARGS_NAME}_waylandonly KWinIntegrationTestFramework kwin Qt5::Test ${ARGS_LIBS}) - add_test(NAME kwin-${ARGS_NAME}-waylandonly COMMAND dbus-run-session ${CMAKE_CURRENT_BINARY_DIR}/${ARGS_NAME}_waylandonly) + add_test(NAME kwin-${ARGS_NAME}-waylandonly COMMAND dbus-run-session ${CMAKE_BINARY_DIR}/bin/${ARGS_NAME}_waylandonly) endif() endfunction() diff --git a/autotests/integration/kwin_wayland_test.h b/autotests/integration/kwin_wayland_test.h --- a/autotests/integration/kwin_wayland_test.h +++ b/autotests/integration/kwin_wayland_test.h @@ -176,11 +176,14 @@ int main(int argc, char *argv[]) \ { \ setenv("QT_QPA_PLATFORM", "wayland-org.kde.kwin.qpa", true); \ - setenv("QT_QPA_PLATFORM_PLUGIN_PATH", KWINQPAPATH, true); \ + setenv("QT_QPA_PLATFORM_PLUGIN_PATH", QFileInfo(QString::fromLocal8Bit(argv[0])).absolutePath().toLocal8Bit().constData(), true); \ setenv("KWIN_FORCE_OWN_QPA", "1", true); \ DPI; \ KWin::WaylandTestApplication app(OperationMode, argc, argv); \ app.setAttribute(Qt::AA_Use96Dpi, true); \ + const auto ownPath = app.libraryPaths().last(); \ + app.removeLibraryPath(ownPath); \ + app.addLibraryPath(ownPath); \ TestObject tc; \ return QTest::qExec(&tc, argc, argv); \ } diff --git a/autotests/integration/kwin_wayland_test.cpp b/autotests/integration/kwin_wayland_test.cpp --- a/autotests/integration/kwin_wayland_test.cpp +++ b/autotests/integration/kwin_wayland_test.cpp @@ -52,7 +52,7 @@ setUseKActivities(false); #endif qputenv("KWIN_COMPOSE", QByteArrayLiteral("Q")); - initPlatform(KPluginMetaData(QStringLiteral(KWINBACKENDPATH))); + initPlatform(KPluginMetaData(QStringLiteral("KWinWaylandVirtualBackend.so"))); WaylandServer::create(this); } diff --git a/autotests/integration/shell_client_test.cpp b/autotests/integration/shell_client_test.cpp --- a/autotests/integration/shell_client_test.cpp +++ b/autotests/integration/shell_client_test.cpp @@ -871,7 +871,7 @@ { // this test verifies that killWindow properly terminates a process // for this an external binary is launched - const QString kill = QFINDTESTDATA(QStringLiteral("helper/kill")); + const QString kill = QFINDTESTDATA(QStringLiteral("kill")); QVERIFY(!kill.isEmpty()); QSignalSpy shellClientAddedSpy(waylandServer(), &WaylandServer::shellClientAdded); QVERIFY(shellClientAddedSpy.isValid()); diff --git a/autotests/integration/xclipboardsync_test.cpp b/autotests/integration/xclipboardsync_test.cpp --- a/autotests/integration/xclipboardsync_test.cpp +++ b/autotests/integration/xclipboardsync_test.cpp @@ -97,9 +97,9 @@ void XClipboardSyncTest::testSync() { // this test verifies the syncing of X11 to Wayland clipboard - const QString copy = QFINDTESTDATA(QStringLiteral("helper/copy")); + const QString copy = QFINDTESTDATA(QStringLiteral("copy")); QVERIFY(!copy.isEmpty()); - const QString paste = QFINDTESTDATA(QStringLiteral("helper/paste")); + const QString paste = QFINDTESTDATA(QStringLiteral("paste")); QVERIFY(!paste.isEmpty()); QSignalSpy clientAddedSpy(workspace(), &Workspace::clientAdded); diff --git a/autotests/libinput/CMakeLists.txt b/autotests/libinput/CMakeLists.txt --- a/autotests/libinput/CMakeLists.txt +++ b/autotests/libinput/CMakeLists.txt @@ -6,7 +6,7 @@ set( testLibinputDevice_SRCS device_test.cpp mock_libinput.cpp ../../libinput/device.cpp ) add_executable(testLibinputDevice ${testLibinputDevice_SRCS}) target_link_libraries( testLibinputDevice Qt5::Test Qt5::DBus KF5::ConfigCore) -add_test(kwin-testLibinputDevice testLibinputDevice) +add_test(NAME kwin-testLibinputDevice COMMAND testLibinputDevice) ecm_mark_as_test(testLibinputDevice) ######################################################## @@ -20,7 +20,7 @@ ) add_executable(testLibinputKeyEvent ${testLibinputKeyEvent_SRCS}) target_link_libraries( testLibinputKeyEvent Qt5::Test Qt5::DBus Qt5::Widgets KF5::ConfigCore) -add_test(kwin-testLibinputKeyEvent testLibinputKeyEvent) +add_test(NAME kwin-testLibinputKeyEvent COMMAND testLibinputKeyEvent) ecm_mark_as_test(testLibinputKeyEvent) ######################################################## @@ -34,7 +34,7 @@ ) add_executable(testLibinputPointerEvent ${testLibinputPointerEvent_SRCS}) target_link_libraries( testLibinputPointerEvent Qt5::Test Qt5::DBus Qt5::Widgets KF5::ConfigCore) -add_test(kwin-testLibinputPointerEvent testLibinputPointerEvent) +add_test(NAME kwin-testLibinputPointerEvent COMMAND testLibinputPointerEvent) ecm_mark_as_test(testLibinputPointerEvent) ######################################################## @@ -48,7 +48,7 @@ ) add_executable(testLibinputTouchEvent ${testLibinputTouchEvent_SRCS}) target_link_libraries( testLibinputTouchEvent Qt5::Test Qt5::DBus Qt5::Widgets KF5::ConfigCore) -add_test(kwin-testLibinputTouchEvent testLibinputTouchEvent) +add_test(NAME kwin-testLibinputTouchEvent COMMAND testLibinputTouchEvent) ecm_mark_as_test(testLibinputTouchEvent) ######################################################## @@ -62,7 +62,7 @@ ) add_executable(testLibinputGestureEvent ${testLibinputGestureEvent_SRCS}) target_link_libraries( testLibinputGestureEvent Qt5::Test Qt5::DBus Qt5::Widgets KF5::ConfigCore) -add_test(kwin-testLibinputGestureEvent testLibinputGestureEvent) +add_test(NAME kwin-testLibinputGestureEvent COMMAND testLibinputGestureEvent) ecm_mark_as_test(testLibinputGestureEvent) ######################################################## @@ -86,14 +86,14 @@ KF5::ConfigCore KF5::WindowSystem ) -add_test(kwin-testLibinputContext testLibinputContext) +add_test(NAME kwin-testLibinputContext COMMAND testLibinputContext) ecm_mark_as_test(testLibinputContext) ######################################################## # Test Input Events ######################################################## set( testInputEvents_SRCS input_event_test.cpp mock_libinput.cpp ../../libinput/device.cpp ../../input_event.cpp ) add_executable(testInputEvents ${testInputEvents_SRCS}) target_link_libraries( testInputEvents Qt5::Test Qt5::DBus Qt5::Gui KF5::ConfigCore) -add_test(kwin-testInputEvents testInputEvents) +add_test(NAME kwin-testInputEvents COMMAND testInputEvents) ecm_mark_as_test(testInputEvents) diff --git a/autotests/libkwineffects/CMakeLists.txt b/autotests/libkwineffects/CMakeLists.txt --- a/autotests/libkwineffects/CMakeLists.txt +++ b/autotests/libkwineffects/CMakeLists.txt @@ -3,7 +3,7 @@ macro(KWINEFFECTS_UNIT_TESTS) foreach(_testname ${ARGN}) add_executable(${_testname} ${_testname}.cpp) - add_test(kwineffects-${_testname} ${_testname}) + add_test(NAME kwineffects-${_testname} COMMAND ${_testname}) target_link_libraries(${_testname} Qt5::Test kwineffects) ecm_mark_as_test(${_testname}) endforeach() @@ -14,6 +14,6 @@ ) add_executable(kwinglplatformtest kwinglplatformtest.cpp mock_gl.cpp ../../libkwineffects/kwinglplatform.cpp) -add_test(kwineffects-kwinglplatformtest kwinglplatformtest) +add_test(NAME kwineffects-kwinglplatformtest COMMAND kwinglplatformtest) target_link_libraries(kwinglplatformtest Qt5::Test Qt5::Gui Qt5::X11Extras KF5::ConfigCore XCB::XCB) ecm_mark_as_test(kwinglplatformtest) diff --git a/autotests/libxrenderutils/CMakeLists.txt b/autotests/libxrenderutils/CMakeLists.txt --- a/autotests/libxrenderutils/CMakeLists.txt +++ b/autotests/libxrenderutils/CMakeLists.txt @@ -1,6 +1,6 @@ add_executable(blendPictureTest blendpicture_test.cpp) set_target_properties(blendPictureTest PROPERTIES COMPILE_DEFINITIONS "NO_NONE_WINDOW") -add_test(xrenderutils-blendPictureTest blendPictureTest) +add_test(NAME xrenderutils-blendPictureTest COMMAND blendPictureTest) target_link_libraries(blendPictureTest kwinxrenderutils Qt5::Test diff --git a/autotests/tabbox/CMakeLists.txt b/autotests/tabbox/CMakeLists.txt --- a/autotests/tabbox/CMakeLists.txt +++ b/autotests/tabbox/CMakeLists.txt @@ -29,7 +29,7 @@ KF5::WindowSystem XCB::XCB ) -add_test(kwin-testTabBoxClientModel testTabBoxClientModel) +add_test(NAME kwin-testTabBoxClientModel COMMAND testTabBoxClientModel) ecm_mark_as_test(testTabBoxClientModel) ######################################################## @@ -61,7 +61,7 @@ KF5::WindowSystem XCB::XCB ) -add_test(kwin-testTabBoxHandler testTabBoxHandler) +add_test(NAME kwin-testTabBoxHandler COMMAND testTabBoxHandler) ecm_mark_as_test(testTabBoxHandler) ######################################################## @@ -75,7 +75,7 @@ add_executable( testTabBoxConfig ${testTabBoxConfig_SRCS} ) target_link_libraries( testTabBoxConfig Qt5::Core Qt5::Test ) -add_test(kwin-testTabBoxConfig testTabBoxConfig) +add_test(NAME kwin-testTabBoxConfig COMMAND testTabBoxConfig) ecm_mark_as_test(testTabBoxConfig) @@ -90,5 +90,5 @@ add_executable( testDesktopChain ${testDesktopChain_SRCS} ) target_link_libraries( testDesktopChain Qt5::Core Qt5::Test ) -add_test(kwin-testDesktopChain testDesktopChain) +add_test(NAME kwin-testDesktopChain COMMAND testDesktopChain) ecm_mark_as_test(testDesktopChain) diff --git a/autotests/test_x11_timestamp_update.cpp b/autotests/test_x11_timestamp_update.cpp --- a/autotests/test_x11_timestamp_update.cpp +++ b/autotests/test_x11_timestamp_update.cpp @@ -46,7 +46,7 @@ { setX11Connection(QX11Info::connection()); setX11RootWindow(QX11Info::appRootWindow()); - initPlatform(KPluginMetaData(QStringLiteral(KWINBACKENDPATH))); + initPlatform(KPluginMetaData(QStringLiteral("KWinX11Platform.so"))); } X11TestApplication::~X11TestApplication() diff --git a/plugins/kdecorations/aurorae/src/CMakeLists.txt b/plugins/kdecorations/aurorae/src/CMakeLists.txt --- a/plugins/kdecorations/aurorae/src/CMakeLists.txt +++ b/plugins/kdecorations/aurorae/src/CMakeLists.txt @@ -13,6 +13,7 @@ ) add_library(kwin5_aurorae MODULE ${kwin5_aurorae_PART_SRCS}) +set_target_properties(kwin5_aurorae PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/org.kde.kdecoration2/") target_link_libraries(kwin5_aurorae KDecoration2::KDecoration diff --git a/plugins/kglobalaccel/CMakeLists.txt b/plugins/kglobalaccel/CMakeLists.txt --- a/plugins/kglobalaccel/CMakeLists.txt +++ b/plugins/kglobalaccel/CMakeLists.txt @@ -3,6 +3,7 @@ ) add_library(KF5GlobalAccelPrivateKWin MODULE ${kglobalaccel_plugin_SRCS}) +set_target_properties(KF5GlobalAccelPrivateKWin PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/org.kde.kglobalaccel5.platforms/") target_link_libraries(KF5GlobalAccelPrivateKWin KF5::GlobalAccelPrivate kwin diff --git a/plugins/scenes/opengl/CMakeLists.txt b/plugins/scenes/opengl/CMakeLists.txt --- a/plugins/scenes/opengl/CMakeLists.txt +++ b/plugins/scenes/opengl/CMakeLists.txt @@ -13,6 +13,7 @@ ) add_library(KWinSceneOpenGL MODULE scene_opengl.cpp) +set_target_properties(KWinSceneOpenGL PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/org.kde.kwin.scenes/") target_link_libraries(KWinSceneOpenGL kwin SceneOpenGLBackend diff --git a/plugins/scenes/qpainter/CMakeLists.txt b/plugins/scenes/qpainter/CMakeLists.txt --- a/plugins/scenes/qpainter/CMakeLists.txt +++ b/plugins/scenes/qpainter/CMakeLists.txt @@ -1,6 +1,7 @@ set(SCENE_QPAINTER_SRCS scene_qpainter.cpp) add_library(KWinSceneQPainter MODULE scene_qpainter.cpp) +set_target_properties(KWinSceneQPainter PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/org.kde.kwin.scenes/") target_link_libraries(KWinSceneQPainter kwin SceneQPainterBackend diff --git a/plugins/scenes/xrender/CMakeLists.txt b/plugins/scenes/xrender/CMakeLists.txt --- a/plugins/scenes/xrender/CMakeLists.txt +++ b/plugins/scenes/xrender/CMakeLists.txt @@ -13,6 +13,7 @@ ) add_library(KWinSceneXRender MODULE ${SCENE_XRENDER_SRCS}) +set_target_properties(KWinSceneXRender PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/org.kde.kwin.scenes/") target_link_libraries(KWinSceneXRender kwin kwinxrenderutils