summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2020-04-01 16:44:10 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2020-04-01 16:48:10 +0200
commit3d4160fc36d584183b473fbffdb528b50a839b98 (patch)
tree957d3fbf70d550480ea50a75a6469de973196a24
parent78c0e10c2f67d837928dafebf8a977fbc50834ac (diff)
parent5fad16ac553dd6e80939a64db6ab655e55292aeb (diff)
Merge remote-tracking branch 'origin/wip/cmake' into dev
Adjusted xcomposite-glx to link against X11. Added latest Coin instructions, plus some additional logic to skip some platforms where building wayland does not make sense. Otherwise Coin will fail on those platforms when trying to extract artifacts that don't exist. Conflicts: coin/module_config.yaml src/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pri src/plugins/hardwareintegration/compositor/xcomposite-glx/CMakeLists.txt Change-Id: I2383b0826ece841f3862f396516f402390aa42be
-rw-r--r--.prev_CMakeLists.txt23
-rw-r--r--CMakeLists.txt45
-rw-r--r--cmake/FindWaylandkms.cmake7
-rw-r--r--cmake/FindXComposite.cmake7
-rw-r--r--coin/module_config.yaml27
-rw-r--r--config.tests/wayland_scanner/CMakeLists.txt8
-rw-r--r--configure.cmake21
-rw-r--r--examples/CMakeLists.txt7
-rw-r--r--examples/wayland/.prev_CMakeLists.txt24
-rw-r--r--examples/wayland/CMakeLists.txt26
-rw-r--r--examples/wayland/custom-extension/CMakeLists.txt5
-rw-r--r--examples/wayland/custom-extension/compositor/CMakeLists.txt54
-rw-r--r--examples/wayland/custom-extension/compositor/compositor.pro2
-rw-r--r--examples/wayland/custom-extension/cpp-client/CMakeLists.txt38
-rw-r--r--examples/wayland/custom-extension/cpp-client/cpp-client.pro2
-rw-r--r--examples/wayland/custom-extension/qml-client/CMakeLists.txt55
-rw-r--r--examples/wayland/custom-extension/qml-client/qml-client.pro2
-rw-r--r--examples/wayland/hwlayer-compositor/CMakeLists.txt44
-rw-r--r--examples/wayland/ivi-compositor/CMakeLists.txt44
-rw-r--r--examples/wayland/minimal-cpp/.prev_CMakeLists.txt39
-rw-r--r--examples/wayland/minimal-cpp/CMakeLists.txt39
-rw-r--r--examples/wayland/minimal-qml/CMakeLists.txt44
-rw-r--r--examples/wayland/multi-output/CMakeLists.txt48
-rw-r--r--examples/wayland/multi-screen/CMakeLists.txt46
-rw-r--r--examples/wayland/overview-compositor/CMakeLists.txt44
-rw-r--r--examples/wayland/pure-qml/CMakeLists.txt48
-rw-r--r--examples/wayland/qwindow-compositor/.prev_CMakeLists.txt55
-rw-r--r--examples/wayland/qwindow-compositor/CMakeLists.txt55
-rw-r--r--examples/wayland/server-buffer/CMakeLists.txt4
-rw-r--r--examples/wayland/server-buffer/compositor/CMakeLists.txt54
-rw-r--r--examples/wayland/server-buffer/cpp-client/CMakeLists.txt40
-rw-r--r--examples/wayland/server-buffer/cpp-client/cpp-client.pro2
-rw-r--r--examples/wayland/server-side-decoration/CMakeLists.txt44
-rw-r--r--examples/wayland/spanning-screens/CMakeLists.txt44
-rw-r--r--examples/wayland/texture-sharing/CMakeLists.txt4
-rw-r--r--examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt50
-rw-r--r--examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro2
-rw-r--r--examples/wayland/texture-sharing/qml-client/CMakeLists.txt44
-rw-r--r--src/.prev_CMakeLists.txt13
-rw-r--r--src/CMakeLists.txt58
-rw-r--r--src/client/.prev_CMakeLists.txt145
-rw-r--r--src/client/CMakeLists.txt152
-rw-r--r--src/client/Qt6WaylandClientMacros.cmake63
-rw-r--r--src/client/configure.cmake194
-rw-r--r--src/client/configure.json17
-rw-r--r--src/compositor/.prev_CMakeLists.txt216
-rw-r--r--src/compositor/CMakeLists.txt221
-rw-r--r--src/compositor/Qt6WaylandCompositorMacros.cmake50
-rw-r--r--src/compositor/compositor_api/qwaylandclient.cpp3
-rw-r--r--src/compositor/compositor_api/qwaylandcompositor.cpp2
-rw-r--r--src/compositor/compositor_api/qwaylanddestroylistener.cpp2
-rw-r--r--src/compositor/compositor_api/qwaylanddrag.cpp2
-rw-r--r--src/compositor/compositor_api/qwaylandinputmethodcontrol.cpp2
-rw-r--r--src/compositor/compositor_api/qwaylandkeyboard.cpp2
-rw-r--r--src/compositor/compositor_api/qwaylandkeymap.cpp2
-rw-r--r--src/compositor/configure.cmake207
-rw-r--r--src/compositor/configure.json16
-rw-r--r--src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri2
-rw-r--r--src/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pri2
-rw-r--r--src/imports/CMakeLists.txt9
-rw-r--r--src/imports/compositor/CMakeLists.txt38
-rw-r--r--src/imports/texture-sharing-extension/CMakeLists.txt28
-rw-r--r--src/imports/texture-sharing/CMakeLists.txt36
-rw-r--r--src/plugins/CMakeLists.txt8
-rw-r--r--src/plugins/decorations/CMakeLists.txt3
-rw-r--r--src/plugins/decorations/bradient/CMakeLists.txt20
-rw-r--r--src/plugins/hardwareintegration/CMakeLists.txt8
-rw-r--r--src/plugins/hardwareintegration/client/CMakeLists.txt29
-rw-r--r--src/plugins/hardwareintegration/client/brcm-egl/CMakeLists.txt33
-rw-r--r--src/plugins/hardwareintegration/client/dmabuf-server/CMakeLists.txt31
-rw-r--r--src/plugins/hardwareintegration/client/drm-egl-server/CMakeLists.txt31
-rw-r--r--src/plugins/hardwareintegration/client/libhybris-egl-server/CMakeLists.txt29
-rw-r--r--src/plugins/hardwareintegration/client/shm-emulation-server/CMakeLists.txt30
-rw-r--r--src/plugins/hardwareintegration/client/vulkan-server/CMakeLists.txt30
-rw-r--r--src/plugins/hardwareintegration/client/wayland-egl/CMakeLists.txt30
-rw-r--r--src/plugins/hardwareintegration/client/xcomposite-egl/CMakeLists.txt37
-rw-r--r--src/plugins/hardwareintegration/client/xcomposite-glx/CMakeLists.txt36
-rw-r--r--src/plugins/hardwareintegration/compositor/CMakeLists.txt34
-rw-r--r--src/plugins/hardwareintegration/compositor/brcm-egl/CMakeLists.txt31
-rw-r--r--src/plugins/hardwareintegration/compositor/dmabuf-server/CMakeLists.txt32
-rw-r--r--src/plugins/hardwareintegration/compositor/drm-egl-server/CMakeLists.txt31
-rw-r--r--src/plugins/hardwareintegration/compositor/hardwarelayer/CMakeLists.txt5
-rw-r--r--src/plugins/hardwareintegration/compositor/hardwarelayer/vsp2/CMakeLists.txt26
-rw-r--r--src/plugins/hardwareintegration/compositor/libhybris-egl-server/CMakeLists.txt31
-rw-r--r--src/plugins/hardwareintegration/compositor/linux-dmabuf-unstable-v1/CMakeLists.txt34
-rw-r--r--src/plugins/hardwareintegration/compositor/shm-emulation-server/CMakeLists.txt30
-rw-r--r--src/plugins/hardwareintegration/compositor/vulkan-server/CMakeLists.txt33
-rw-r--r--src/plugins/hardwareintegration/compositor/wayland-egl/CMakeLists.txt28
-rw-r--r--src/plugins/hardwareintegration/compositor/wayland-eglstream-controller/CMakeLists.txt34
-rw-r--r--src/plugins/hardwareintegration/compositor/xcomposite-egl/CMakeLists.txt40
-rw-r--r--src/plugins/hardwareintegration/compositor/xcomposite-glx/.prev_CMakeLists.txt39
-rw-r--r--src/plugins/hardwareintegration/compositor/xcomposite-glx/CMakeLists.txt40
-rw-r--r--src/plugins/platforms/CMakeLists.txt15
-rw-r--r--src/plugins/platforms/qwayland-brcm-egl/CMakeLists.txt33
-rw-r--r--src/plugins/platforms/qwayland-egl/CMakeLists.txt30
-rw-r--r--src/plugins/platforms/qwayland-generic/.prev_CMakeLists.txt19
-rw-r--r--src/plugins/platforms/qwayland-generic/CMakeLists.txt20
-rw-r--r--src/plugins/platforms/qwayland-xcomposite-egl/CMakeLists.txt36
-rw-r--r--src/plugins/platforms/qwayland-xcomposite-glx/CMakeLists.txt37
-rw-r--r--src/plugins/shellintegration/CMakeLists.txt20
-rw-r--r--src/plugins/shellintegration/fullscreen-shell-v1/CMakeLists.txt28
-rw-r--r--src/plugins/shellintegration/ivi-shell/CMakeLists.txt37
-rw-r--r--src/plugins/shellintegration/wl-shell/CMakeLists.txt36
-rw-r--r--src/plugins/shellintegration/xdg-shell-v5/CMakeLists.txt38
-rw-r--r--src/plugins/shellintegration/xdg-shell-v6/CMakeLists.txt36
-rw-r--r--src/plugins/shellintegration/xdg-shell/CMakeLists.txt38
-rw-r--r--src/qtwaylandscanner/.prev_CMakeLists.txt15
-rw-r--r--src/qtwaylandscanner/CMakeLists.txt22
-rw-r--r--tests/.prev_CMakeLists.txt7
-rw-r--r--tests/CMakeLists.txt19
-rw-r--r--tests/auto/.prev_CMakeLists.txt11
-rw-r--r--tests/auto/CMakeLists.txt11
-rw-r--r--tests/auto/client/CMakeLists.txt21
-rw-r--r--tests/auto/client/client/.prev_CMakeLists.txt39
-rw-r--r--tests/auto/client/client/CMakeLists.txt40
-rw-r--r--tests/auto/client/datadevicev1/.prev_CMakeLists.txt30
-rw-r--r--tests/auto/client/datadevicev1/CMakeLists.txt31
-rw-r--r--tests/auto/client/fullscreenshellv1/.prev_CMakeLists.txt36
-rw-r--r--tests/auto/client/fullscreenshellv1/CMakeLists.txt37
-rw-r--r--tests/auto/client/inputcontext/.prev_CMakeLists.txt30
-rw-r--r--tests/auto/client/inputcontext/CMakeLists.txt31
-rw-r--r--tests/auto/client/iviapplication/.prev_CMakeLists.txt36
-rw-r--r--tests/auto/client/iviapplication/CMakeLists.txt37
-rw-r--r--tests/auto/client/nooutput/.prev_CMakeLists.txt30
-rw-r--r--tests/auto/client/nooutput/CMakeLists.txt31
-rw-r--r--tests/auto/client/output/.prev_CMakeLists.txt30
-rw-r--r--tests/auto/client/output/CMakeLists.txt31
-rw-r--r--tests/auto/client/primaryselectionv1/.prev_CMakeLists.txt31
-rw-r--r--tests/auto/client/primaryselectionv1/CMakeLists.txt32
-rw-r--r--tests/auto/client/seatv4/.prev_CMakeLists.txt39
-rw-r--r--tests/auto/client/seatv4/CMakeLists.txt40
-rw-r--r--tests/auto/client/seatv5/.prev_CMakeLists.txt30
-rw-r--r--tests/auto/client/seatv5/CMakeLists.txt31
-rw-r--r--tests/auto/client/surface/.prev_CMakeLists.txt30
-rw-r--r--tests/auto/client/surface/CMakeLists.txt31
-rw-r--r--tests/auto/client/tabletv2/.prev_CMakeLists.txt31
-rw-r--r--tests/auto/client/tabletv2/CMakeLists.txt32
-rw-r--r--tests/auto/client/wl_connect/CMakeLists.txt13
-rw-r--r--tests/auto/client/xdgdecorationv1/.prev_CMakeLists.txt31
-rw-r--r--tests/auto/client/xdgdecorationv1/CMakeLists.txt32
-rw-r--r--tests/auto/client/xdgoutput/.prev_CMakeLists.txt31
-rw-r--r--tests/auto/client/xdgoutput/CMakeLists.txt32
-rw-r--r--tests/auto/client/xdgshell/.prev_CMakeLists.txt30
-rw-r--r--tests/auto/client/xdgshell/CMakeLists.txt31
-rw-r--r--tests/auto/client/xdgshellv6/.prev_CMakeLists.txt36
-rw-r--r--tests/auto/client/xdgshellv6/CMakeLists.txt37
-rw-r--r--tests/auto/compositor/CMakeLists.txt3
-rw-r--r--tests/auto/compositor/compositor/CMakeLists.txt44
-rw-r--r--tests/manual/qmlclient/CMakeLists.txt33
-rw-r--r--tests/manual/scaling-compositor/CMakeLists.txt31
-rw-r--r--tests/manual/subsurface/CMakeLists.txt35
-rw-r--r--tests/manual/texture-sharing/cpp-client/CMakeLists.txt27
-rw-r--r--tests/manual/wip-cpp-compositor/CMakeLists.txt20
-rw-r--r--tests/manual/wlscaler/CMakeLists.txt30
154 files changed, 5238 insertions, 35 deletions
diff --git a/.prev_CMakeLists.txt b/.prev_CMakeLists.txt
new file mode 100644
index 000000000..5dbeedd2a
--- /dev/null
+++ b/.prev_CMakeLists.txt
@@ -0,0 +1,23 @@
+# Generated from qtwayland.pro.
+
+cmake_minimum_required(VERSION 3.15.0)
+
+project(wayland_FIXME
+ VERSION 6.0.0
+ DESCRIPTION "Qt wayland_FIXME Libraries"
+ HOMEPAGE_URL "https://qt.io/"
+ LANGUAGES CXX C
+)
+
+find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core SET_ME_TO_SOMETHING_USEFUL)
+find_package(Qt6 ${PROJECT_VERSION} CONFIG OPTIONAL_COMPONENTS SET_ME_TO_SOMETHING_USEFUL)
+
+if(NOT MACOS AND NOT QNX AND (ANDROID OR NOT LINUX))
+ message(NOTICE "Skipping the build as the condition \"LINUX OR MACOS OR QNX\" is not met.")
+ return()
+endif()
+if(NOT TARGET Qt::Gui)
+ message(NOTICE "Skipping the build as the condition \"TARGET Qt::Gui\" is not met.")
+ return()
+endif()
+qt_build_repo()
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 000000000..3a28f3164
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,45 @@
+# Generated from qtwayland.pro.
+
+cmake_minimum_required(VERSION 3.15.0)
+
+project(QtWayland # special case
+ VERSION 6.0.0
+ DESCRIPTION "Qt Wayland Libraries" # special case
+ HOMEPAGE_URL "https://qt.io/"
+ LANGUAGES CXX C
+)
+
+# special case begin
+# TODO: Fix warnings and remove this
+set(QT_REPO_NOT_WARNINGS_CLEAN TRUE)
+
+find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS
+ BuildInternals
+ Core
+ Gui
+ EventDispatcherSupport
+ FontDatabaseSupport
+ ThemeSupport
+)
+
+find_package(Qt6 ${PROJECT_VERSION} CONFIG OPTIONAL_COMPONENTS
+ EglSupport
+ GlxSupport
+ LinuxAccessibilitySupport
+ PlatformCompositorSupport
+ Quick
+ ServiceSupport
+ VulkanSupport
+ XkbCommonSupport
+)
+# special case end
+
+if(NOT MACOS AND NOT QNX AND (ANDROID OR NOT LINUX))
+ message(NOTICE "Skipping the build as the condition \"LINUX OR MACOS OR QNX\" is not met.")
+ return()
+endif()
+if(NOT TARGET Qt::Gui)
+ message(NOTICE "Skipping the build as the condition \"TARGET Qt::Gui\" is not met.")
+ return()
+endif()
+qt_build_repo()
diff --git a/cmake/FindWaylandkms.cmake b/cmake/FindWaylandkms.cmake
new file mode 100644
index 000000000..136e70f84
--- /dev/null
+++ b/cmake/FindWaylandkms.cmake
@@ -0,0 +1,7 @@
+include(FindPkgConfig)
+
+pkg_check_modules(Waylandkms wayland-kms IMPORTED_TARGET)
+
+if (NOT TARGET PkgConfig::Waylandkms)
+ set(Waylandkms_FOUND 0)
+endif()
diff --git a/cmake/FindXComposite.cmake b/cmake/FindXComposite.cmake
new file mode 100644
index 000000000..0be522797
--- /dev/null
+++ b/cmake/FindXComposite.cmake
@@ -0,0 +1,7 @@
+include(FindPkgConfig)
+
+pkg_check_modules(XComposite xcomposite IMPORTED_TARGET)
+
+if (NOT TARGET PkgConfig::XComposite)
+ set(XComposite_FOUND 0)
+endif()
diff --git a/coin/module_config.yaml b/coin/module_config.yaml
new file mode 100644
index 000000000..8cbc87057
--- /dev/null
+++ b/coin/module_config.yaml
@@ -0,0 +1,27 @@
+version: 2
+accept_configuration:
+ condition: property
+ property: features
+ not_contains_value: Disable
+
+instructions:
+ Build:
+ - !include "{{qt/qtbase}}/coin_module_build_template_v2.yaml"
+
+ Test:
+ - type: Group
+ instructions:
+ - !include "{{qt/qtbase}}/coin_module_test_template_v2.yaml"
+ disable_if:
+ condition: or
+ conditions:
+ - condition: property
+ property: host.os
+ in_values: ["Windows", "MacOS"]
+ - condition: property
+ property: target.os
+ in_values: ["IOS", "Android", "WebAssembly"]
+ - type: EnvironmentVariable
+ variableName: Dummy
+ variableValue: dummy
+
diff --git a/config.tests/wayland_scanner/CMakeLists.txt b/config.tests/wayland_scanner/CMakeLists.txt
new file mode 100644
index 000000000..794f48b16
--- /dev/null
+++ b/config.tests/wayland_scanner/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Generated from wayland_scanner.pro.
+
+cmake_minimum_required(VERSION 3.14.0)
+project(config_test_wayland_scanner LANGUAGES CXX)
+
+add_executable(${PROJECT_NAME}
+ main.cpp
+)
diff --git a/configure.cmake b/configure.cmake
new file mode 100644
index 000000000..53e3f1109
--- /dev/null
+++ b/configure.cmake
@@ -0,0 +1,21 @@
+
+
+#### Inputs
+
+
+
+#### Libraries
+
+
+
+#### Tests
+
+
+
+#### Features
+
+
+qt_extra_definition("QT_VERSION_STR" "\"${PROJECT_VERSION}\"" PUBLIC)
+qt_extra_definition("QT_VERSION_MAJOR" ${PROJECT_VERSION_MAJOR} PUBLIC)
+qt_extra_definition("QT_VERSION_MINOR" ${PROJECT_VERSION_MINOR} PUBLIC)
+qt_extra_definition("QT_VERSION_PATCH" ${PROJECT_VERSION_PATCH} PUBLIC)
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
new file mode 100644
index 000000000..c1557e889
--- /dev/null
+++ b/examples/CMakeLists.txt
@@ -0,0 +1,7 @@
+# Generated from examples.pro.
+
+qt_examples_build_begin()
+
+add_subdirectory(wayland)
+
+qt_examples_build_end()
diff --git a/examples/wayland/.prev_CMakeLists.txt b/examples/wayland/.prev_CMakeLists.txt
new file mode 100644
index 000000000..435734b7c
--- /dev/null
+++ b/examples/wayland/.prev_CMakeLists.txt
@@ -0,0 +1,24 @@
+# Generated from wayland.pro.
+
+if(QT_FEATURE_opengl)
+ add_subdirectory(qwindow-compositor)
+ add_subdirectory(minimal-cpp)
+endif()
+if(TARGET Qt::Quick)
+ add_subdirectory(minimal-qml)
+ add_subdirectory(spanning-screens)
+ add_subdirectory(pure-qml)
+ add_subdirectory(multi-output)
+ add_subdirectory(multi-screen)
+ add_subdirectory(overview-compositor)
+ add_subdirectory(ivi-compositor)
+ add_subdirectory(server-side-decoration)
+ add_subdirectory(hwlayer-compositor)
+endif()
+if(TARGET Qt::Quick AND TARGET Qt::WaylandClient)
+ add_subdirectory(custom-extension)
+endif()
+if(QT_FEATURE_opengl AND TARGET Qt::Quick AND TARGET Qt::WaylandClient)
+ add_subdirectory(server-buffer)
+ add_subdirectory(texture-sharing)
+endif()
diff --git a/examples/wayland/CMakeLists.txt b/examples/wayland/CMakeLists.txt
new file mode 100644
index 000000000..9470d3a1d
--- /dev/null
+++ b/examples/wayland/CMakeLists.txt
@@ -0,0 +1,26 @@
+# Generated from wayland.pro.
+
+if(QT_FEATURE_wayland_server) # special case
+if(QT_FEATURE_opengl)
+ add_subdirectory(qwindow-compositor)
+ add_subdirectory(minimal-cpp)
+endif()
+if(TARGET Qt::Quick)
+ add_subdirectory(minimal-qml)
+ add_subdirectory(spanning-screens)
+ add_subdirectory(pure-qml)
+ add_subdirectory(multi-output)
+ add_subdirectory(multi-screen)
+ add_subdirectory(overview-compositor)
+ add_subdirectory(ivi-compositor)
+ add_subdirectory(server-side-decoration)
+ add_subdirectory(hwlayer-compositor)
+endif()
+if(TARGET Qt::Quick AND TARGET Qt::WaylandClient)
+ add_subdirectory(custom-extension)
+endif()
+if(QT_FEATURE_opengl AND TARGET Qt::Quick AND TARGET Qt::WaylandClient)
+ add_subdirectory(server-buffer)
+ add_subdirectory(texture-sharing)
+endif()
+endif() # special case
diff --git a/examples/wayland/custom-extension/CMakeLists.txt b/examples/wayland/custom-extension/CMakeLists.txt
new file mode 100644
index 000000000..408a9174e
--- /dev/null
+++ b/examples/wayland/custom-extension/CMakeLists.txt
@@ -0,0 +1,5 @@
+# Generated from custom-extension.pro.
+
+add_subdirectory(qml-client)
+add_subdirectory(compositor)
+add_subdirectory(cpp-client)
diff --git a/examples/wayland/custom-extension/compositor/CMakeLists.txt b/examples/wayland/custom-extension/compositor/CMakeLists.txt
new file mode 100644
index 000000000..6727e6ad4
--- /dev/null
+++ b/examples/wayland/custom-extension/compositor/CMakeLists.txt
@@ -0,0 +1,54 @@
+# Generated from compositor.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(custom-extension-compositor LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/custom-extension/compositor")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS WaylandCompositor)
+
+add_qt_gui_executable(custom-extension-compositor
+ customextension.cpp customextension.h
+ main.cpp
+)
+
+qt6_generate_wayland_protocol_server_sources(custom-extension-compositor
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../protocol/custom.xml
+)
+target_link_libraries(custom-extension-compositor PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::WaylandCompositor
+)
+
+
+# Resources:
+set(compositor_resource_files
+ "images/background.png"
+ "qml/Screen.qml"
+ "qml/main.qml"
+)
+
+qt6_add_resources(custom-extension-compositor "compositor"
+ PREFIX
+ "/"
+ FILES
+ ${compositor_resource_files}
+)
+
+install(TARGETS custom-extension-compositor
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/custom-extension/compositor/compositor.pro b/examples/wayland/custom-extension/compositor/compositor.pro
index 751b5ca3d..6152e0a38 100644
--- a/examples/wayland/custom-extension/compositor/compositor.pro
+++ b/examples/wayland/custom-extension/compositor/compositor.pro
@@ -18,7 +18,7 @@ WAYLANDSERVERSOURCES += \
RESOURCES += compositor.qrc
-TARGET = custom-compositor
+TARGET = custom-extension-compositor
HEADERS += \
customextension.h
diff --git a/examples/wayland/custom-extension/cpp-client/CMakeLists.txt b/examples/wayland/custom-extension/cpp-client/CMakeLists.txt
new file mode 100644
index 000000000..ffdc34b70
--- /dev/null
+++ b/examples/wayland/custom-extension/cpp-client/CMakeLists.txt
@@ -0,0 +1,38 @@
+# Generated from cpp-client.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(custom-extension-cpp-client LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/custom-extension/cpp-client")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS WaylandClient)
+
+add_qt_gui_executable(custom-extension-cpp-client
+ ../client-common/customextension.cpp ../client-common/customextension.h
+ main.cpp
+)
+
+qt6_generate_wayland_protocol_client_sources(custom-extension-cpp-client
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../protocol/custom.xml
+)
+target_link_libraries(custom-extension-cpp-client PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::WaylandClient
+)
+
+install(TARGETS custom-extension-cpp-client
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/custom-extension/cpp-client/cpp-client.pro b/examples/wayland/custom-extension/cpp-client/cpp-client.pro
index 388a09bfa..6b178514e 100644
--- a/examples/wayland/custom-extension/cpp-client/cpp-client.pro
+++ b/examples/wayland/custom-extension/cpp-client/cpp-client.pro
@@ -9,5 +9,7 @@ SOURCES += main.cpp \
HEADERS += \
../client-common/customextension.h
+TARGET = custom-extension-cpp-client
+
target.path = $$[QT_INSTALL_EXAMPLES]/wayland/custom-extension/cpp-client
INSTALLS += target
diff --git a/examples/wayland/custom-extension/qml-client/CMakeLists.txt b/examples/wayland/custom-extension/qml-client/CMakeLists.txt
new file mode 100644
index 000000000..9ce56593b
--- /dev/null
+++ b/examples/wayland/custom-extension/qml-client/CMakeLists.txt
@@ -0,0 +1,55 @@
+# Generated from qml-client.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(custom-extension-qml-client LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/custom-extension/qml-client")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+find_package(Qt6 COMPONENTS WaylandClient)
+
+add_qt_gui_executable(custom-extension-qml-client
+ ../client-common/customextension.cpp ../client-common/customextension.h
+ main.cpp
+)
+
+qt6_generate_wayland_protocol_client_sources(custom-extension-qml-client
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../protocol/custom.xml
+)
+target_link_libraries(custom-extension-qml-client PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::Qml
+ Qt::Quick
+ Qt::WaylandClient
+)
+
+
+# Resources:
+set(qml_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(custom-extension-qml-client "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+install(TARGETS custom-extension-qml-client
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/custom-extension/qml-client/qml-client.pro b/examples/wayland/custom-extension/qml-client/qml-client.pro
index a8fa420af..bad4af2db 100644
--- a/examples/wayland/custom-extension/qml-client/qml-client.pro
+++ b/examples/wayland/custom-extension/qml-client/qml-client.pro
@@ -10,6 +10,8 @@ SOURCES += main.cpp \
HEADERS += \
../client-common/customextension.h
+TARGET = custom-extension-qml-client
+
RESOURCES += qml.qrc
target.path = $$[QT_INSTALL_EXAMPLES]/wayland/custom-extension/qml-client
diff --git a/examples/wayland/hwlayer-compositor/CMakeLists.txt b/examples/wayland/hwlayer-compositor/CMakeLists.txt
new file mode 100644
index 000000000..5d2d61e91
--- /dev/null
+++ b/examples/wayland/hwlayer-compositor/CMakeLists.txt
@@ -0,0 +1,44 @@
+# Generated from hwlayer-compositor.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(hwlayer-compositor LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/hwlayer-compositor")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+
+add_qt_gui_executable(hwlayer-compositor
+ main.cpp
+)
+target_link_libraries(hwlayer-compositor PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+)
+
+
+# Resources:
+set(hwlayer-compositor_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(hwlayer-compositor "hwlayer-compositor"
+ PREFIX
+ "/"
+ FILES
+ ${hwlayer-compositor_resource_files}
+)
+
+install(TARGETS hwlayer-compositor
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/ivi-compositor/CMakeLists.txt b/examples/wayland/ivi-compositor/CMakeLists.txt
new file mode 100644
index 000000000..31555531c
--- /dev/null
+++ b/examples/wayland/ivi-compositor/CMakeLists.txt
@@ -0,0 +1,44 @@
+# Generated from ivi-compositor.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(ivi-compositor LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/ivi-compositor")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+
+add_qt_gui_executable(ivi-compositor
+ main.cpp
+)
+target_link_libraries(ivi-compositor PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+)
+
+
+# Resources:
+set(ivi-compositor_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(ivi-compositor "ivi-compositor"
+ PREFIX
+ "/"
+ FILES
+ ${ivi-compositor_resource_files}
+)
+
+install(TARGETS ivi-compositor
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/minimal-cpp/.prev_CMakeLists.txt b/examples/wayland/minimal-cpp/.prev_CMakeLists.txt
new file mode 100644
index 000000000..a278fce0c
--- /dev/null
+++ b/examples/wayland/minimal-cpp/.prev_CMakeLists.txt
@@ -0,0 +1,39 @@
+# Generated from minimal-cpp.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(minimal-cpp LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/minimal-cpp")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS WaylandCompositor)
+
+add_qt_gui_executable(minimal-cpp
+ compositor.cpp compositor.h
+ main.cpp
+ window.cpp window.h
+)
+target_include_directories(minimal-cpp PUBLIC
+ ../../include
+)
+
+target_link_libraries(minimal-cpp PUBLIC
+ # Remove: L
+ ../../lib
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+install(TARGETS minimal-cpp
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/minimal-cpp/CMakeLists.txt b/examples/wayland/minimal-cpp/CMakeLists.txt
new file mode 100644
index 000000000..a812865b9
--- /dev/null
+++ b/examples/wayland/minimal-cpp/CMakeLists.txt
@@ -0,0 +1,39 @@
+# Generated from minimal-cpp.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(minimal-cpp LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/minimal-cpp")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS WaylandCompositor)
+
+add_qt_gui_executable(minimal-cpp
+ compositor.cpp compositor.h
+ main.cpp
+ window.cpp window.h
+)
+target_include_directories(minimal-cpp PUBLIC
+ ../../include
+)
+
+target_link_libraries(minimal-cpp PUBLIC
+ # Remove: L
+ #../../lib # special case
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+install(TARGETS minimal-cpp
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/minimal-qml/CMakeLists.txt b/examples/wayland/minimal-qml/CMakeLists.txt
new file mode 100644
index 000000000..fd8c4c68b
--- /dev/null
+++ b/examples/wayland/minimal-qml/CMakeLists.txt
@@ -0,0 +1,44 @@
+# Generated from minimal-qml.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(minimal-qml LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/minimal-qml")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+
+add_qt_gui_executable(minimal-qml
+ main.cpp
+)
+target_link_libraries(minimal-qml PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+)
+
+
+# Resources:
+set(minimal-qml_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(minimal-qml "minimal-qml"
+ PREFIX
+ "/"
+ FILES
+ ${minimal-qml_resource_files}
+)
+
+install(TARGETS minimal-qml
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/multi-output/CMakeLists.txt b/examples/wayland/multi-output/CMakeLists.txt
new file mode 100644
index 000000000..5e3f5b45f
--- /dev/null
+++ b/examples/wayland/multi-output/CMakeLists.txt
@@ -0,0 +1,48 @@
+# Generated from multi-output.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(multi-output LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/multi-output")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+
+add_qt_gui_executable(multi-output
+ main.cpp
+)
+target_link_libraries(multi-output PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+)
+
+
+# Resources:
+set(multi-output_resource_files
+ "images/background.jpg"
+ "qml/GridScreen.qml"
+ "qml/ShellChrome.qml"
+ "qml/ShellScreen.qml"
+ "qml/main.qml"
+)
+
+qt6_add_resources(multi-output "multi-output"
+ PREFIX
+ "/"
+ FILES
+ ${multi-output_resource_files}
+)
+
+install(TARGETS multi-output
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/multi-screen/CMakeLists.txt b/examples/wayland/multi-screen/CMakeLists.txt
new file mode 100644
index 000000000..ce38ddf66
--- /dev/null
+++ b/examples/wayland/multi-screen/CMakeLists.txt
@@ -0,0 +1,46 @@
+# Generated from multi-screen.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(multi-screen LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/multi-screen")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+
+add_qt_gui_executable(multi-screen
+ main.cpp
+)
+target_link_libraries(multi-screen PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+)
+
+
+# Resources:
+set(multi-screen_resource_files
+ "qml/Chrome.qml"
+ "qml/Screen.qml"
+ "qml/main.qml"
+)
+
+qt6_add_resources(multi-screen "multi-screen"
+ PREFIX
+ "/"
+ FILES
+ ${multi-screen_resource_files}
+)
+
+install(TARGETS multi-screen
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/overview-compositor/CMakeLists.txt b/examples/wayland/overview-compositor/CMakeLists.txt
new file mode 100644
index 000000000..8e32b730c
--- /dev/null
+++ b/examples/wayland/overview-compositor/CMakeLists.txt
@@ -0,0 +1,44 @@
+# Generated from overview-compositor.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(overview-compositor LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/overview-compositor")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+
+add_qt_gui_executable(overview-compositor
+ main.cpp
+)
+target_link_libraries(overview-compositor PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+)
+
+
+# Resources:
+set(overview-compositor_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(overview-compositor "overview-compositor"
+ PREFIX
+ "/"
+ FILES
+ ${overview-compositor_resource_files}
+)
+
+install(TARGETS overview-compositor
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/pure-qml/CMakeLists.txt b/examples/wayland/pure-qml/CMakeLists.txt
new file mode 100644
index 000000000..af504bfbe
--- /dev/null
+++ b/examples/wayland/pure-qml/CMakeLists.txt
@@ -0,0 +1,48 @@
+# Generated from pure-qml.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(pure-qml LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/pure-qml")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+
+add_qt_gui_executable(pure-qml
+ main.cpp
+)
+target_link_libraries(pure-qml PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+)
+
+
+# Resources:
+set(pure-qml_resource_files
+ "images/background.jpg"
+ "qml/Chrome.qml"
+ "qml/Keyboard.qml"
+ "qml/Screen.qml"
+ "qml/main.qml"
+)
+
+qt6_add_resources(pure-qml "pure-qml"
+ PREFIX
+ "/"
+ FILES
+ ${pure-qml_resource_files}
+)
+
+install(TARGETS pure-qml
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/qwindow-compositor/.prev_CMakeLists.txt b/examples/wayland/qwindow-compositor/.prev_CMakeLists.txt
new file mode 100644
index 000000000..048ea184f
--- /dev/null
+++ b/examples/wayland/qwindow-compositor/.prev_CMakeLists.txt
@@ -0,0 +1,55 @@
+# Generated from qwindow-compositor.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(qwindow-compositor LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/qwindow-compositor")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS WaylandCompositor)
+
+add_qt_gui_executable(qwindow-compositor
+ compositor.cpp compositor.h
+ main.cpp
+ window.cpp window.h
+)
+target_include_directories(qwindow-compositor PUBLIC
+ ../../include
+)
+
+target_link_libraries(qwindow-compositor PUBLIC
+ # Remove: L
+ ../../lib
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+
+# Resources:
+set_source_files_properties("../pure-qml/images/background.jpg"
+ PROPERTIES QT_RESOURCE_ALIAS "background.jpg"
+)
+set(qwindow-compositor_resource_files
+ "../pure-qml/images/background.jpg"
+)
+
+qt6_add_resources(qwindow-compositor "qwindow-compositor"
+ PREFIX
+ "/"
+ FILES
+ ${qwindow-compositor_resource_files}
+)
+
+install(TARGETS qwindow-compositor
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/qwindow-compositor/CMakeLists.txt b/examples/wayland/qwindow-compositor/CMakeLists.txt
new file mode 100644
index 000000000..1d1201bae
--- /dev/null
+++ b/examples/wayland/qwindow-compositor/CMakeLists.txt
@@ -0,0 +1,55 @@
+# Generated from qwindow-compositor.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(qwindow-compositor LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/qwindow-compositor")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS WaylandCompositor)
+
+add_qt_gui_executable(qwindow-compositor
+ compositor.cpp compositor.h
+ main.cpp
+ window.cpp window.h
+)
+target_include_directories(qwindow-compositor PUBLIC
+ ../../include
+)
+
+target_link_libraries(qwindow-compositor PUBLIC
+ # Remove: L
+ #../../lib # special case
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+
+# Resources:
+set_source_files_properties("../pure-qml/images/background.jpg"
+ PROPERTIES QT_RESOURCE_ALIAS "background.jpg"
+)
+set(qwindow-compositor_resource_files
+ "../pure-qml/images/background.jpg"
+)
+
+qt6_add_resources(qwindow-compositor "qwindow-compositor"
+ PREFIX
+ "/"
+ FILES
+ ${qwindow-compositor_resource_files}
+)
+
+install(TARGETS qwindow-compositor
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/server-buffer/CMakeLists.txt b/examples/wayland/server-buffer/CMakeLists.txt
new file mode 100644
index 000000000..ad4115116
--- /dev/null
+++ b/examples/wayland/server-buffer/CMakeLists.txt
@@ -0,0 +1,4 @@
+# Generated from server-buffer.pro.
+
+add_subdirectory(cpp-client)
+add_subdirectory(compositor)
diff --git a/examples/wayland/server-buffer/compositor/CMakeLists.txt b/examples/wayland/server-buffer/compositor/CMakeLists.txt
new file mode 100644
index 000000000..932f4be08
--- /dev/null
+++ b/examples/wayland/server-buffer/compositor/CMakeLists.txt
@@ -0,0 +1,54 @@
+# Generated from compositor.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(compositor LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/server-buffer/compositor")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS WaylandCompositor)
+
+add_qt_gui_executable(compositor
+ main.cpp
+ sharebufferextension.cpp sharebufferextension.h
+)
+
+qt6_generate_wayland_protocol_server_sources(compositor
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../share-buffer.xml
+)
+target_link_libraries(compositor PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::WaylandCompositorPrivate
+)
+
+
+# Resources:
+set(compositor_resource_files
+ "images/Siberischer_tiger_de_edit02.jpg"
+ "images/background.png"
+ "qml/main.qml"
+)
+
+qt6_add_resources(compositor "compositor"
+ PREFIX
+ "/"
+ FILES
+ ${compositor_resource_files}
+)
+
+install(TARGETS compositor
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/server-buffer/cpp-client/CMakeLists.txt b/examples/wayland/server-buffer/cpp-client/CMakeLists.txt
new file mode 100644
index 000000000..2f33057fe
--- /dev/null
+++ b/examples/wayland/server-buffer/cpp-client/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Generated from cpp-client.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(server-buffer-cpp-client LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/server-buffer/cpp-client")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS WaylandClient)
+find_package(Qt6 COMPONENTS OpenGL)
+
+add_qt_gui_executable(server-buffer-cpp-client
+ main.cpp
+ sharebufferextension.cpp sharebufferextension.h
+)
+
+qt6_generate_wayland_protocol_client_sources(server-buffer-cpp-client
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../share-buffer.xml
+)
+target_link_libraries(server-buffer-cpp-client PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+)
+
+install(TARGETS server-buffer-cpp-client
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/server-buffer/cpp-client/cpp-client.pro b/examples/wayland/server-buffer/cpp-client/cpp-client.pro
index 01dc18a0d..6ac551323 100644
--- a/examples/wayland/server-buffer/cpp-client/cpp-client.pro
+++ b/examples/wayland/server-buffer/cpp-client/cpp-client.pro
@@ -9,5 +9,7 @@ SOURCES += main.cpp \
HEADERS += \
sharebufferextension.h
+TARGET = server-buffer-cpp-client
+
target.path = $$[QT_INSTALL_EXAMPLES]/wayland/server-buffer/cpp-client
INSTALLS += target
diff --git a/examples/wayland/server-side-decoration/CMakeLists.txt b/examples/wayland/server-side-decoration/CMakeLists.txt
new file mode 100644
index 000000000..299404aba
--- /dev/null
+++ b/examples/wayland/server-side-decoration/CMakeLists.txt
@@ -0,0 +1,44 @@
+# Generated from server-side-decoration.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(server-side-decoration LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/server-side-decoration")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+
+add_qt_gui_executable(server-side-decoration
+ main.cpp
+)
+target_link_libraries(server-side-decoration PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+)
+
+
+# Resources:
+set(server-side-decoration_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(server-side-decoration "server-side-decoration"
+ PREFIX
+ "/"
+ FILES
+ ${server-side-decoration_resource_files}
+)
+
+install(TARGETS server-side-decoration
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/spanning-screens/CMakeLists.txt b/examples/wayland/spanning-screens/CMakeLists.txt
new file mode 100644
index 000000000..510d7aec0
--- /dev/null
+++ b/examples/wayland/spanning-screens/CMakeLists.txt
@@ -0,0 +1,44 @@
+# Generated from spanning-screens.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(spanning-screens LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/spanning-screens")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+
+add_qt_gui_executable(spanning-screens
+ main.cpp
+)
+target_link_libraries(spanning-screens PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+)
+
+
+# Resources:
+set(spanning-screens_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(spanning-screens "spanning-screens"
+ PREFIX
+ "/"
+ FILES
+ ${spanning-screens_resource_files}
+)
+
+install(TARGETS spanning-screens
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/texture-sharing/CMakeLists.txt b/examples/wayland/texture-sharing/CMakeLists.txt
new file mode 100644
index 000000000..bf6a7cbf9
--- /dev/null
+++ b/examples/wayland/texture-sharing/CMakeLists.txt
@@ -0,0 +1,4 @@
+# Generated from texture-sharing.pro.
+
+add_subdirectory(qml-client)
+add_subdirectory(custom-compositor)
diff --git a/examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt b/examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt
new file mode 100644
index 000000000..a6127f584
--- /dev/null
+++ b/examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt
@@ -0,0 +1,50 @@
+# Generated from custom-compositor.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(texture-sharing-custom-compositor LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/texture-sharing/custom-compositor")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS WaylandCompositor)
+
+add_qt_gui_executable(texture-sharing-custom-compositor
+ main.cpp
+)
+target_link_libraries(texture-sharing-custom-compositor PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::WaylandCompositorPrivate
+)
+
+
+# Resources:
+set(compositor_resource_files
+ "images/background.png"
+ "images/car.ktx"
+ "images/qt4.astc"
+ "images/qt_logo.png"
+ "qml/main.qml"
+)
+
+qt6_add_resources(texture-sharing-custom-compositor "compositor"
+ PREFIX
+ "/"
+ FILES
+ ${compositor_resource_files}
+)
+
+install(TARGETS texture-sharing-custom-compositor
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro b/examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro
index e80e9e153..c8497970e 100644
--- a/examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro
+++ b/examples/wayland/texture-sharing/custom-compositor/custom-compositor.pro
@@ -12,7 +12,7 @@ OTHER_FILES = \
RESOURCES += compositor.qrc
-TARGET = custom-compositor
+TARGET = texture-sharing-custom-compositor
target.path = $$[QT_INSTALL_EXAMPLES]/wayland/texture-sharing/custom-compositor
INSTALLS += target
diff --git a/examples/wayland/texture-sharing/qml-client/CMakeLists.txt b/examples/wayland/texture-sharing/qml-client/CMakeLists.txt
new file mode 100644
index 000000000..ec2e02ee4
--- /dev/null
+++ b/examples/wayland/texture-sharing/qml-client/CMakeLists.txt
@@ -0,0 +1,44 @@
+# Generated from qml-client.pro.
+
+cmake_minimum_required(VERSION 3.14)
+project(qml-client LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+set(INSTALL_EXAMPLEDIR "examples/wayland/texture-sharing/qml-client")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Quick)
+
+add_qt_gui_executable(qml-client
+ main.cpp
+)
+target_link_libraries(qml-client PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Quick
+)
+
+
+# Resources:
+set(qml-client_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(qml-client "qml-client"
+ PREFIX
+ "/"
+ FILES
+ ${qml-client_resource_files}
+)
+
+install(TARGETS qml-client
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/src/.prev_CMakeLists.txt b/src/.prev_CMakeLists.txt
new file mode 100644
index 000000000..5fb1675ca
--- /dev/null
+++ b/src/.prev_CMakeLists.txt
@@ -0,0 +1,13 @@
+# Generated from src.pro.
+
+if(QT_FEATURE_wayland_client OR QT_FEATURE_wayland_server)
+ add_subdirectory(qtwaylandscanner)
+ add_subdirectory(plugins)
+ add_subdirectory(imports)
+endif()
+if(QT_FEATURE_wayland_client)
+ add_subdirectory(client)
+endif()
+if(QT_FEATURE_wayland_server)
+ add_subdirectory(compositor)
+endif()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 000000000..62c1adbec
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,58 @@
+# Generated from src.pro.
+# special case begin
+qt_find_package(WaylandScanner PROVIDED_TARGETS Wayland::Scanner)
+qt_find_package(Wayland)
+
+if (NOT WaylandScanner_FOUND OR NOT Wayland_FOUND)
+ message(WARNING "QtWayland is missing required dependencies, nothing will be built. \
+Although this could be considered an error, the configuration will still pass as coin (Qt's \
+continuous integration system) will fail the build if configure fails, but will still try to \
+configure the module on targets that are missing dependencies.")
+ return()
+endif()
+
+# We conditionally add_subdirectory(client) based on a feature that is defined
+# in client/configure.cmake, so we need this hack to make sure the feature is
+# defined on this level as well.
+# TODO: when we remove configure.json support and stop generating
+# configure.cmake, we should move the features up one level and deduplicate the
+# features shared with the compositor.
+qt_feature_module_begin(
+ NO_MODULE
+ PUBLIC_FILE "qtwayland-client-config.h"
+ PRIVATE_FILE "qtwayland-client-config_p.h"
+)
+include("${CMAKE_CURRENT_SOURCE_DIR}/client/configure.cmake")
+qt_feature_module_end(NO_MODULE)
+
+# Similar hack as above, but for the compositor
+qt_feature_module_begin(
+ NO_MODULE
+ PUBLIC_FILE "qtwayland-compositor-config.h"
+ PRIVATE_FILE "qtwayland-compositor-config_p.h"
+)
+include("${CMAKE_CURRENT_SOURCE_DIR}/compositor/configure.cmake")
+qt_feature_module_end(NO_MODULE)
+# special case end
+
+add_subdirectory(qtwaylandscanner)
+
+# special case begin
+# TODO: Ideally these macros would be part of the qtwaylandscanner tool, and not the compositor/client
+include(client/Qt6WaylandClientMacros.cmake)
+include(compositor/Qt6WaylandCompositorMacros.cmake)
+#special case end
+
+if (QT_FEATURE_wayland_client)
+ add_subdirectory(client)
+endif()
+
+if (QT_FEATURE_wayland_server)
+ add_subdirectory(compositor)
+endif()
+
+if (QT_FEATURE_wayland_server OR QT_FEATURE_wayland_client)
+ add_subdirectory(plugins)
+ add_subdirectory(imports)
+endif()
+# special case end
diff --git a/src/client/.prev_CMakeLists.txt b/src/client/.prev_CMakeLists.txt
new file mode 100644
index 000000000..58861b945
--- /dev/null
+++ b/src/client/.prev_CMakeLists.txt
@@ -0,0 +1,145 @@
+# Generated from client.pro.
+
+#####################################################################
+## WaylandClient Module:
+#####################################################################
+
+qt_add_module(WaylandClient
+ PLUGIN_TYPES wayland-graphics-integration-client wayland-inputdevice-integration wayland-decoration-client wayland-shell-integration
+ SOURCES
+ ../shared/qwaylandinputmethodeventbuilder.cpp ../shared/qwaylandinputmethodeventbuilder_p.h
+ ../shared/qwaylandmimehelper.cpp ../shared/qwaylandmimehelper_p.h
+ ../shared/qwaylandsharedmemoryformathelper_p.h
+ global/qwaylandclientextension.cpp global/qwaylandclientextension.h global/qwaylandclientextension_p.h
+ hardwareintegration/qwaylandclientbufferintegration.cpp hardwareintegration/qwaylandclientbufferintegration_p.h
+ hardwareintegration/qwaylandclientbufferintegrationfactory.cpp hardwareintegration/qwaylandclientbufferintegrationfactory_p.h
+ hardwareintegration/qwaylandclientbufferintegrationplugin.cpp hardwareintegration/qwaylandclientbufferintegrationplugin_p.h
+ hardwareintegration/qwaylandhardwareintegration.cpp hardwareintegration/qwaylandhardwareintegration_p.h
+ hardwareintegration/qwaylandserverbufferintegration.cpp hardwareintegration/qwaylandserverbufferintegration_p.h
+ hardwareintegration/qwaylandserverbufferintegrationfactory.cpp hardwareintegration/qwaylandserverbufferintegrationfactory_p.h
+ hardwareintegration/qwaylandserverbufferintegrationplugin.cpp hardwareintegration/qwaylandserverbufferintegrationplugin_p.h
+ inputdeviceintegration/qwaylandinputdeviceintegration_p.h
+ inputdeviceintegration/qwaylandinputdeviceintegrationfactory.cpp inputdeviceintegration/qwaylandinputdeviceintegrationfactory_p.h
+ inputdeviceintegration/qwaylandinputdeviceintegrationplugin.cpp inputdeviceintegration/qwaylandinputdeviceintegrationplugin_p.h
+ qtwaylandclientglobal.h qtwaylandclientglobal_p.h
+ qwaylandabstractdecoration.cpp qwaylandabstractdecoration_p.h
+ qwaylandbuffer.cpp qwaylandbuffer_p.h
+ qwaylanddecorationfactory.cpp qwaylanddecorationfactory_p.h
+ qwaylanddecorationplugin.cpp qwaylanddecorationplugin_p.h
+ qwaylanddisplay.cpp qwaylanddisplay_p.h
+ qwaylandextendedsurface.cpp qwaylandextendedsurface_p.h
+ qwaylandinputcontext.cpp qwaylandinputcontext_p.h
+ qwaylandinputdevice.cpp qwaylandinputdevice_p.h
+ qwaylandintegration.cpp qwaylandintegration_p.h
+ qwaylandnativeinterface.cpp qwaylandnativeinterface_p.h
+ qwaylandqtkey.cpp qwaylandqtkey_p.h
+ qwaylandscreen.cpp qwaylandscreen_p.h
+ qwaylandshellsurface.cpp qwaylandshellsurface_p.h
+ qwaylandshm.cpp qwaylandshm_p.h
+ qwaylandshmbackingstore.cpp qwaylandshmbackingstore_p.h
+ qwaylandshmwindow.cpp qwaylandshmwindow_p.h
+ qwaylandsubsurface.cpp qwaylandsubsurface_p.h
+ qwaylandsurface.cpp qwaylandsurface_p.h
+ qwaylandtabletv2.cpp qwaylandtabletv2_p.h
+ qwaylandtouch.cpp qwaylandtouch_p.h
+ qwaylandwindow.cpp qwaylandwindow_p.h
+ qwaylandwindowmanagerintegration.cpp qwaylandwindowmanagerintegration_p.h
+ shellintegration/qwaylandshellintegration_p.h
+ shellintegration/qwaylandshellintegrationfactory.cpp shellintegration/qwaylandshellintegrationfactory_p.h
+ shellintegration/qwaylandshellintegrationplugin.cpp shellintegration/qwaylandshellintegrationplugin_p.h
+ INCLUDE_DIRECTORIES
+ ../shared
+ global
+ hardwareintegration
+ inputdeviceintegration
+ shellintegration
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::EventDispatcherSupportPrivate
+ Qt::FontDatabaseSupportPrivate
+ Qt::GuiPrivate
+ Qt::ServiceSupportPrivate
+ Qt::ThemeSupportPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Wayland::Client
+ PRIVATE_MODULE_INTERFACE
+ Qt::CorePrivate
+ Qt::GuiPrivate
+)
+
+qt6_generate_wayland_protocol_client_sources(WaylandClient
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/tablet-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/wp-primary-selection-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/xdg-output-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/qt-key-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/qt-windowmanager.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/surface-extension.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/touch-extension.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/hardwareintegration/../../extensions/hardware-integration.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/hardwareintegration/../../extensions/server-buffer-extension.xml
+)
+
+#### Keys ignored in scope 1:.:.:client.pro:<TRUE>:
+# MODULE = "waylandclient"
+# QMAKE_CXXFLAGS_WARN_ON = "--Wcast-qual"
+
+## Scopes:
+#####################################################################
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_vulkan
+ SOURCES
+ qwaylandvulkaninstance.cpp qwaylandvulkaninstance_p.h
+ qwaylandvulkanwindow.cpp qwaylandvulkanwindow_p.h
+ LIBRARIES
+ Qt::VulkanSupportPrivate
+)
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_xkbcommon
+ LIBRARIES
+ Qt::XkbCommonSupportPrivate
+)
+
+qt_extend_target(WaylandClient CONDITION TARGET Qt::PlatformCompositorSupportPrivate
+ LIBRARIES
+ Qt::PlatformCompositorSupportPrivate
+)
+
+qt_extend_target(WaylandClient CONDITION TARGET Qt::LinuxAccessibilitySupportPrivate
+ LIBRARIES
+ Qt::LinuxAccessibilitySupportPrivate
+)
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_clipboard
+ SOURCES
+ qwaylandclipboard.cpp qwaylandclipboard_p.h
+)
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_cursor
+ SOURCES
+ qwaylandcursor.cpp qwaylandcursor_p.h
+ PUBLIC_LIBRARIES
+ Wayland::Cursor
+)
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_wayland_datadevice
+ SOURCES
+ qwaylanddatadevice.cpp qwaylanddatadevice_p.h
+ qwaylanddatadevicemanager.cpp qwaylanddatadevicemanager_p.h
+ qwaylanddataoffer.cpp qwaylanddataoffer_p.h
+ qwaylanddatasource.cpp qwaylanddatasource_p.h
+)
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_wayland_client_primary_selection
+ SOURCES
+ qwaylandprimaryselectionv1.cpp qwaylandprimaryselectionv1_p.h
+)
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_draganddrop
+ SOURCES
+ qwaylanddnd.cpp qwaylanddnd_p.h
+)
diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt
new file mode 100644
index 000000000..597321a2c
--- /dev/null
+++ b/src/client/CMakeLists.txt
@@ -0,0 +1,152 @@
+# Generated from client.pro.
+
+#####################################################################
+## WaylandClient Module:
+#####################################################################
+
+qt_add_module(WaylandClient
+ PLUGIN_TYPES wayland-graphics-integration-client wayland-inputdevice-integration wayland-decoration-client wayland-shell-integration
+ SOURCES
+ ../shared/qwaylandinputmethodeventbuilder.cpp ../shared/qwaylandinputmethodeventbuilder_p.h
+ ../shared/qwaylandmimehelper.cpp ../shared/qwaylandmimehelper_p.h
+ ../shared/qwaylandsharedmemoryformathelper_p.h
+ global/qwaylandclientextension.cpp global/qwaylandclientextension.h global/qwaylandclientextension_p.h
+ hardwareintegration/qwaylandclientbufferintegration.cpp hardwareintegration/qwaylandclientbufferintegration_p.h
+ hardwareintegration/qwaylandclientbufferintegrationfactory.cpp hardwareintegration/qwaylandclientbufferintegrationfactory_p.h
+ hardwareintegration/qwaylandclientbufferintegrationplugin.cpp hardwareintegration/qwaylandclientbufferintegrationplugin_p.h
+ hardwareintegration/qwaylandhardwareintegration.cpp hardwareintegration/qwaylandhardwareintegration_p.h
+ hardwareintegration/qwaylandserverbufferintegration.cpp hardwareintegration/qwaylandserverbufferintegration_p.h
+ hardwareintegration/qwaylandserverbufferintegrationfactory.cpp hardwareintegration/qwaylandserverbufferintegrationfactory_p.h
+ hardwareintegration/qwaylandserverbufferintegrationplugin.cpp hardwareintegration/qwaylandserverbufferintegrationplugin_p.h
+ inputdeviceintegration/qwaylandinputdeviceintegration_p.h
+ inputdeviceintegration/qwaylandinputdeviceintegrationfactory.cpp inputdeviceintegration/qwaylandinputdeviceintegrationfactory_p.h
+ inputdeviceintegration/qwaylandinputdeviceintegrationplugin.cpp inputdeviceintegration/qwaylandinputdeviceintegrationplugin_p.h
+ qtwaylandclientglobal.h qtwaylandclientglobal_p.h
+ qwaylandabstractdecoration.cpp qwaylandabstractdecoration_p.h
+ qwaylandbuffer.cpp qwaylandbuffer_p.h
+ qwaylanddecorationfactory.cpp qwaylanddecorationfactory_p.h
+ qwaylanddecorationplugin.cpp qwaylanddecorationplugin_p.h
+ qwaylanddisplay.cpp qwaylanddisplay_p.h
+ qwaylandextendedsurface.cpp qwaylandextendedsurface_p.h
+ qwaylandinputcontext.cpp qwaylandinputcontext_p.h
+ qwaylandinputdevice.cpp qwaylandinputdevice_p.h
+ qwaylandintegration.cpp qwaylandintegration_p.h
+ qwaylandnativeinterface.cpp qwaylandnativeinterface_p.h
+ qwaylandqtkey.cpp qwaylandqtkey_p.h
+ qwaylandscreen.cpp qwaylandscreen_p.h
+ qwaylandshellsurface.cpp qwaylandshellsurface_p.h
+ qwaylandshm.cpp qwaylandshm_p.h
+ qwaylandshmbackingstore.cpp qwaylandshmbackingstore_p.h
+ qwaylandshmwindow.cpp qwaylandshmwindow_p.h
+ qwaylandsubsurface.cpp qwaylandsubsurface_p.h
+ qwaylandsurface.cpp qwaylandsurface_p.h
+ qwaylandtabletv2.cpp qwaylandtabletv2_p.h
+ qwaylandtouch.cpp qwaylandtouch_p.h
+ qwaylandwindow.cpp qwaylandwindow_p.h
+ qwaylandwindowmanagerintegration.cpp qwaylandwindowmanagerintegration_p.h
+ shellintegration/qwaylandshellintegration_p.h
+ shellintegration/qwaylandshellintegrationfactory.cpp shellintegration/qwaylandshellintegrationfactory_p.h
+ shellintegration/qwaylandshellintegrationplugin.cpp shellintegration/qwaylandshellintegrationplugin_p.h
+ INCLUDE_DIRECTORIES
+ ../shared
+ global
+ hardwareintegration
+ inputdeviceintegration
+ shellintegration
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::EventDispatcherSupportPrivate
+ Qt::FontDatabaseSupportPrivate
+ Qt::GuiPrivate
+ Qt::ServiceSupportPrivate
+ Qt::ThemeSupportPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Wayland::Client
+ PRIVATE_MODULE_INTERFACE
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::ServiceSupportPrivate # special case QTBUG-83063
+)
+
+qt6_generate_wayland_protocol_client_sources(WaylandClient
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/tablet-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/wp-primary-selection-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/xdg-output-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/qt-key-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/qt-windowmanager.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/surface-extension.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/touch-extension.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/hardwareintegration/../../extensions/hardware-integration.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/hardwareintegration/../../extensions/server-buffer-extension.xml
+)
+
+#### Keys ignored in scope 1:.:.:client.pro:<TRUE>:
+# MODULE = "waylandclient"
+# QMAKE_CXXFLAGS_WARN_ON = "--Wcast-qual"
+
+## Scopes:
+#####################################################################
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_vulkan
+ SOURCES
+ qwaylandvulkaninstance.cpp qwaylandvulkaninstance_p.h
+ qwaylandvulkanwindow.cpp qwaylandvulkanwindow_p.h
+ LIBRARIES
+ Qt::VulkanSupportPrivate
+)
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_xkbcommon
+ LIBRARIES
+ Qt::XkbCommonSupportPrivate
+ PRIVATE_MODULE_INTERFACE # special case QTBUG-83063
+ Qt::XkbCommonSupportPrivate # special case
+)
+
+qt_extend_target(WaylandClient CONDITION TARGET Qt::PlatformCompositorSupportPrivate
+ LIBRARIES
+ Qt::PlatformCompositorSupportPrivate
+)
+
+qt_extend_target(WaylandClient CONDITION TARGET Qt::LinuxAccessibilitySupportPrivate
+ LIBRARIES
+ Qt::LinuxAccessibilitySupportPrivate
+)
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_clipboard
+ SOURCES
+ qwaylandclipboard.cpp qwaylandclipboard_p.h
+)
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_cursor
+ SOURCES
+ qwaylandcursor.cpp qwaylandcursor_p.h
+ PUBLIC_LIBRARIES
+ Wayland::Cursor
+)
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_wayland_datadevice
+ SOURCES
+ qwaylanddatadevice.cpp qwaylanddatadevice_p.h
+ qwaylanddatadevicemanager.cpp qwaylanddatadevicemanager_p.h
+ qwaylanddataoffer.cpp qwaylanddataoffer_p.h
+ qwaylanddatasource.cpp qwaylanddatasource_p.h
+)
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_wayland_client_primary_selection
+ SOURCES
+ qwaylandprimaryselectionv1.cpp qwaylandprimaryselectionv1_p.h
+)
+
+qt_extend_target(WaylandClient CONDITION QT_FEATURE_draganddrop
+ SOURCES
+ qwaylanddnd.cpp qwaylanddnd_p.h
+)
+
+# special case begin
+qt_record_extra_qt_package_dependency(WaylandClient WaylandScannerTools "")
+# special case end
diff --git a/src/client/Qt6WaylandClientMacros.cmake b/src/client/Qt6WaylandClientMacros.cmake
new file mode 100644
index 000000000..6624c84f2
--- /dev/null
+++ b/src/client/Qt6WaylandClientMacros.cmake
@@ -0,0 +1,63 @@
+function(qt6_generate_wayland_protocol_client_sources target)
+ qt_parse_all_arguments(arg "qt6_generate_wayland_protocol_client_sources" "" "" "FILES" ${ARGN})
+ get_target_property(target_binary_dir ${target} BINARY_DIR)
+
+ foreach(protocol_file IN LISTS arg_FILES)
+ get_filename_component(protocol_name "${protocol_file}" NAME_WLE)
+
+ set(waylandscanner_header_output "${target_binary_dir}/wayland-${protocol_name}-client-protocol.h")
+ set(waylandscanner_code_output "${target_binary_dir}/wayland-${protocol_name}-protocol.c")
+ # TODO: Maybe add "client" prefix or suffix to these in Qt6?
+ set(qtwaylandscanner_header_output "${target_binary_dir}/qwayland-${protocol_name}.h")
+ set(qtwaylandscanner_code_output "${target_binary_dir}/qwayland-${protocol_name}.cpp")
+
+ add_custom_command(
+ OUTPUT "${waylandscanner_header_output}"
+ #TODO: Maybe put the files in ${CMAKE_CURRENT_BINARY_DIR/wayland_generated instead?
+ COMMAND Wayland::Scanner --include-core-only client-header < "${protocol_file}" > "${waylandscanner_header_output}"
+ )
+
+ add_custom_command(
+ OUTPUT "${waylandscanner_code_output}"
+ COMMAND Wayland::Scanner --include-core-only code < "${protocol_file}" > "${waylandscanner_code_output}"
+ )
+
+ # TODO: Make this less hacky
+ set(wayland_include_dir "")
+ get_target_property(is_for_module "${target}" INTERFACE_MODULE_HAS_HEADERS)
+ if (is_for_module)
+ set(wayland_include_dir "QtWaylandClient/private")
+ endif()
+
+ add_custom_command(
+ OUTPUT "${qtwaylandscanner_header_output}"
+ COMMAND Qt6::qtwaylandscanner client-header "${protocol_file}" "${wayland_include_dir}" > "${qtwaylandscanner_header_output}"
+ )
+
+ # TODO: We need this hack in order to get the xcomposite plugins to build...
+ # unfortunately, it's not going to work outside QtWayland because we're using waylandclient-private includes
+ set(qtwaylandscanner_code_include "")
+ set (targets_that_need_include
+ "QWaylandXCompositeEglClientBufferPlugin"
+ "QWaylandXCompositeGlxClientBufferPlugin"
+ "QWaylandXCompositeEglPlatformIntegrationPlugin"
+ "QWaylandXCompositeGlxPlatformIntegrationPlugin")
+ if ("${target}" IN_LIST targets_that_need_include OR is_for_module)
+ set(qtwaylandscanner_code_include "<QtWaylandClient/private/wayland-wayland-client-protocol.h>")
+ endif()
+
+ add_custom_command(
+ OUTPUT "${qtwaylandscanner_code_output}"
+ COMMAND Qt6::qtwaylandscanner client-code "${protocol_file}" --header-path='${wayland_include_dir}' --add-include='${qtwaylandscanner_code_include}' > "${qtwaylandscanner_code_output}"
+ )
+
+ target_sources(${target} PRIVATE
+ "${waylandscanner_header_output}"
+ "${waylandscanner_code_output}"
+ "${qtwaylandscanner_header_output}"
+ "${qtwaylandscanner_code_output}"
+ )
+ endforeach()
+ target_include_directories(${target} PRIVATE ${target_binary_dir})
+endfunction()
+
diff --git a/src/client/configure.cmake b/src/client/configure.cmake
new file mode 100644
index 000000000..99aed833e
--- /dev/null
+++ b/src/client/configure.cmake
@@ -0,0 +1,194 @@
+
+
+#### Inputs
+
+
+
+#### Libraries
+
+if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS)
+ qt_find_package(Wayland PROVIDED_TARGETS Wayland::Client)
+endif()
+if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS)
+ qt_find_package(Wayland PROVIDED_TARGETS Wayland::Cursor)
+endif()
+if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS)
+ qt_find_package(Wayland PROVIDED_TARGETS Wayland::Egl)
+endif()
+qt_find_package(XComposite PROVIDED_TARGETS PkgConfig::XComposite)
+
+
+#### Tests
+
+# drm-egl-server
+qt_config_compile_test(drm_egl_server
+ LABEL "DRM EGL Server"
+ LIBRARIES
+ EGL::EGL
+ CODE
+"
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+
+int main(int argc, char **argv)
+{
+ (void)argc; (void)argv;
+ /* BEGIN TEST: */
+#ifdef EGL_MESA_drm_image
+return 0;
+#else
+#error Requires EGL_MESA_drm_image to be defined
+return 1;
+#endif
+ /* END TEST: */
+ return 0;
+}
+")
+
+# libhybris-egl-server
+qt_config_compile_test(libhybris_egl_server
+ LABEL "libhybris EGL Server"
+ LIBRARIES
+ EGL::EGL
+ CODE
+"
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+#include <hybris/eglplatformcommon/hybris_nativebufferext.h>
+
+int main(int argc, char **argv)
+{
+ (void)argc; (void)argv;
+ /* BEGIN TEST: */
+#ifdef EGL_HYBRIS_native_buffer
+return 0;
+#else
+#error Requires EGL_HYBRIS_native_buffer to be defined
+return 1;
+#endif
+ /* END TEST: */
+ return 0;
+}
+")
+
+# dmabuf-server-buffer
+qt_config_compile_test(dmabuf_server_buffer
+ LABEL "Linux dma-buf Buffer Sharing"
+ LIBRARIES
+ EGL::EGL
+ CODE
+"
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+#include <drm_fourcc.h>
+
+int main(int argc, char **argv)
+{
+ (void)argc; (void)argv;
+ /* BEGIN TEST: */
+#ifdef EGL_LINUX_DMA_BUF_EXT
+return 0;
+#else
+#error Requires EGL_LINUX_DMA_BUF_EXT
+return 1;
+#endif
+ /* END TEST: */
+ return 0;
+}
+")
+
+# vulkan-server-buffer
+qt_config_compile_test(vulkan_server_buffer
+ LABEL "Vulkan Buffer Sharing"
+ CODE
+"
+#include <vulkan/vulkan.h>
+
+int main(int argc, char **argv)
+{
+ (void)argc; (void)argv;
+ /* BEGIN TEST: */
+VkExportMemoryAllocateInfoKHR exportAllocInfo = {};
+exportAllocInfo.sType = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR;
+exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;
+return 0;
+ /* END TEST: */
+ return 0;
+}
+")
+
+
+
+#### Features
+
+qt_feature("wayland_client" PRIVATE
+ LABEL "Qt Wayland Client"
+ CONDITION NOT WIN32 AND Wayland_FOUND AND Wayland_FOUND AND WaylandScanner_FOUND
+)
+qt_feature("wayland_datadevice" PRIVATE
+ CONDITION QT_FEATURE_draganddrop OR QT_FEATURE_clipboard
+)
+qt_feature("wayland_client_primary_selection" PRIVATE
+ LABEL "primary-selection clipboard"
+ CONDITION QT_FEATURE_clipboard
+)
+qt_feature("wayland_client_fullscreen_shell_v1" PRIVATE
+ LABEL "fullscreen-shell-v1"
+ CONDITION QT_FEATURE_wayland_client
+)
+qt_feature("wayland_client_ivi_shell" PRIVATE
+ LABEL "ivi-shell"
+ CONDITION QT_FEATURE_wayland_client
+)
+qt_feature("wayland_client_wl_shell" PRIVATE
+ LABEL "wl-shell (deprecated)"
+ CONDITION QT_FEATURE_wayland_client
+)
+qt_feature("wayland_client_xdg_shell" PRIVATE
+ LABEL "xdg-shell"
+ CONDITION QT_FEATURE_wayland_client
+)
+qt_feature("wayland_client_xdg_shell_v5" PRIVATE
+ LABEL "xdg-shell unstable v5 (deprecated)"
+ CONDITION QT_FEATURE_wayland_client
+)
+qt_feature("wayland_client_xdg_shell_v6" PRIVATE
+ LABEL "xdg-shell unstable v6"
+ CONDITION QT_FEATURE_wayland_client
+)
+qt_feature("wayland_egl" PRIVATE
+ LABEL "EGL"
+ CONDITION QT_FEATURE_wayland_client AND QT_FEATURE_opengl AND QT_FEATURE_egl AND Wayland_FOUND
+)
+qt_feature("wayland_brcm" PRIVATE
+ LABEL "Raspberry Pi"
+ CONDITION QT_FEATURE_wayland_client AND QT_FEATURE_eglfs_brcm
+)
+qt_feature("xcomposite_egl" PRIVATE
+ LABEL "XComposite EGL"
+ CONDITION QT_FEATURE_wayland_client AND QT_FEATURE_opengl AND QT_FEATURE_egl AND QT_FEATURE_xlib AND XComposite_FOUND AND QT_FEATURE_egl_x11
+)
+qt_feature("xcomposite_glx" PRIVATE
+ LABEL "XComposite GLX"
+ CONDITION QT_FEATURE_wayland_client AND QT_FEATURE_opengl AND NOT QT_FEATURE_opengles2 AND QT_FEATURE_xlib AND XComposite_FOUND
+)
+qt_feature("wayland_drm_egl_server_buffer" PRIVATE
+ LABEL "DRM EGL"
+ CONDITION QT_FEATURE_wayland_client AND QT_FEATURE_opengl AND QT_FEATURE_egl AND TEST_drm_egl_server
+)
+qt_feature("wayland_libhybris_egl_server_buffer" PRIVATE
+ LABEL "libhybris EGL"
+ CONDITION QT_FEATURE_wayland_client AND QT_FEATURE_opengl AND QT_FEATURE_egl AND TEST_libhybris_egl_server
+)
+qt_feature("wayland_dmabuf_server_buffer" PRIVATE
+ LABEL "Linux dma-buf server buffer integration"
+ CONDITION QT_FEATURE_wayland_client AND QT_FEATURE_opengl AND QT_FEATURE_egl AND TEST_dmabuf_server_buffer
+)
+qt_feature("wayland_vulkan_server_buffer" PRIVATE
+ LABEL "Vulkan-based server buffer integration"
+ CONDITION QT_FEATURE_wayland_client AND QT_FEATURE_opengl AND QT_FEATURE_egl AND TEST_vulkan_server_buffer
+)
+qt_feature("wayland_shm_emulation_server_buffer" PRIVATE
+ LABEL "Shm emulation server buffer integration"
+ CONDITION QT_FEATURE_wayland_client AND QT_FEATURE_opengl
+)
diff --git a/src/client/configure.json b/src/client/configure.json
index 9b8b43457..5f19cefc5 100644
--- a/src/client/configure.json
+++ b/src/client/configure.json
@@ -67,21 +67,6 @@
{ "type": "pkgConfig", "args": "xcomposite" },
"-lxcomposite"
]
- },
- "glx": {
- "label": "GLX",
- "headers": "GL/glx.h",
- "test": {
- "main": [
- "Display *dpy = XOpenDisplay(0);",
- "int items = 0;",
- "GLXFBConfig *fbc = glXChooseFBConfig(dpy, DefaultScreen(dpy), 0 , &items);"
- ]
- },
- "sources": [
- { "type": "pkgConfig", "args": "x11 gl" },
- "-lX11 -lGl"
- ]
}
},
@@ -248,7 +233,7 @@
},
"xcomposite-glx": {
"label": "XComposite GLX",
- "condition": "features.wayland-client && features.opengl && !features.opengles2 && features.xlib && libs.xcomposite && libs.glx",
+ "condition": "features.wayland-client && features.opengl && !features.opengles2 && features.xlib && libs.xcomposite",
"output": [ "privateFeature" ]
},
"wayland-drm-egl-server-buffer": {
diff --git a/src/compositor/.prev_CMakeLists.txt b/src/compositor/.prev_CMakeLists.txt
new file mode 100644
index 000000000..35bae5ef0
--- /dev/null
+++ b/src/compositor/.prev_CMakeLists.txt
@@ -0,0 +1,216 @@
+# Generated from compositor.pro.
+
+#####################################################################
+## WaylandCompositor Module:
+#####################################################################
+
+qt_add_module(WaylandCompositor
+ PLUGIN_TYPES wayland-graphics-integration-server wayland-hardware-layer-integration
+ SOURCES
+ ../shared/qwaylandinputmethodeventbuilder.cpp ../shared/qwaylandinputmethodeventbuilder_p.h
+ ../shared/qwaylandmimehelper.cpp ../shared/qwaylandmimehelper_p.h
+ ../shared/qwaylandsharedmemoryformathelper_p.h
+ compositor_api/qwaylandbufferref.cpp compositor_api/qwaylandbufferref.h
+ compositor_api/qwaylandclient.cpp compositor_api/qwaylandclient.h
+ compositor_api/qwaylandcompositor.cpp compositor_api/qwaylandcompositor.h compositor_api/qwaylandcompositor_p.h
+ compositor_api/qwaylanddestroylistener.cpp compositor_api/qwaylanddestroylistener.h compositor_api/qwaylanddestroylistener_p.h
+ compositor_api/qwaylandkeyboard.cpp compositor_api/qwaylandkeyboard.h compositor_api/qwaylandkeyboard_p.h
+ compositor_api/qwaylandkeymap.cpp compositor_api/qwaylandkeymap.h compositor_api/qwaylandkeymap_p.h
+ compositor_api/qwaylandoutput.cpp compositor_api/qwaylandoutput.h compositor_api/qwaylandoutput_p.h
+ compositor_api/qwaylandoutputmode.cpp compositor_api/qwaylandoutputmode.h compositor_api/qwaylandoutputmode_p.h
+ compositor_api/qwaylandpointer.cpp compositor_api/qwaylandpointer.h compositor_api/qwaylandpointer_p.h
+ compositor_api/qwaylandquickchildren.h
+ compositor_api/qwaylandresource.cpp compositor_api/qwaylandresource.h
+ compositor_api/qwaylandseat.cpp compositor_api/qwaylandseat.h compositor_api/qwaylandseat_p.h
+ compositor_api/qwaylandsurface.cpp compositor_api/qwaylandsurface.h compositor_api/qwaylandsurface_p.h
+ compositor_api/qwaylandsurfacegrabber.cpp compositor_api/qwaylandsurfacegrabber.h
+ compositor_api/qwaylandtouch.cpp compositor_api/qwaylandtouch.h compositor_api/qwaylandtouch_p.h
+ compositor_api/qwaylandview.cpp compositor_api/qwaylandview.h compositor_api/qwaylandview_p.h
+ extensions/pregenerated/3rdparty/qwayland-server-xdg-shell-unstable-v5.cpp extensions/pregenerated/3rdparty/qwayland-server-xdg-shell-unstable-v5_p.h
+ extensions/pregenerated/3rdparty/wayland-xdg-shell-unstable-v5-protocol.c
+ extensions/pregenerated/3rdparty/wayland-xdg-shell-unstable-v5-server-protocol_p.h
+ extensions/qwaylandidleinhibitv1.cpp extensions/qwaylandidleinhibitv1.h extensions/qwaylandidleinhibitv1_p.h
+ extensions/qwaylandiviapplication.cpp extensions/qwaylandiviapplication.h extensions/qwaylandiviapplication_p.h
+ extensions/qwaylandivisurface.cpp extensions/qwaylandivisurface.h extensions/qwaylandivisurface_p.h
+ extensions/qwaylandqtwindowmanager.cpp extensions/qwaylandqtwindowmanager.h extensions/qwaylandqtwindowmanager_p.h
+ extensions/qwaylandshell.cpp extensions/qwaylandshell.h extensions/qwaylandshell_p.h
+ extensions/qwaylandshellsurface.cpp extensions/qwaylandshellsurface.h
+ extensions/qwaylandtextinput.cpp extensions/qwaylandtextinput.h extensions/qwaylandtextinput_p.h
+ extensions/qwaylandtextinputmanager.cpp extensions/qwaylandtextinputmanager.h extensions/qwaylandtextinputmanager_p.h
+ extensions/qwaylandviewporter.cpp extensions/qwaylandviewporter.h extensions/qwaylandviewporter_p.h
+ extensions/qwaylandwlscaler.cpp extensions/qwaylandwlscaler.h extensions/qwaylandwlscaler_p.h
+ extensions/qwaylandwlshell.cpp extensions/qwaylandwlshell.h extensions/qwaylandwlshell_p.h
+ extensions/qwaylandxdgdecorationv1.cpp extensions/qwaylandxdgdecorationv1.h extensions/qwaylandxdgdecorationv1_p.h
+ extensions/qwaylandxdgoutputv1.cpp extensions/qwaylandxdgoutputv1.h extensions/qwaylandxdgoutputv1_p.h
+ extensions/qwaylandxdgshell.cpp extensions/qwaylandxdgshell.h extensions/qwaylandxdgshell_p.h
+ extensions/qwaylandxdgshellv5.cpp extensions/qwaylandxdgshellv5.h extensions/qwaylandxdgshellv5_p.h
+ extensions/qwaylandxdgshellv6.cpp extensions/qwaylandxdgshellv6.h extensions/qwaylandxdgshellv6_p.h
+ extensions/qwlqtkey.cpp extensions/qwlqtkey_p.h
+ extensions/qwlqttouch.cpp extensions/qwlqttouch_p.h
+ global/qtwaylandcompositorglobal.h
+ global/qwaylandcompositorextension.cpp global/qwaylandcompositorextension.h global/qwaylandcompositorextension_p.h
+ global/qwaylandquickextension.h
+ global/qwaylandutils_p.h
+ wayland_wrapper/qwlbuffermanager.cpp wayland_wrapper/qwlbuffermanager_p.h
+ wayland_wrapper/qwlclientbuffer.cpp wayland_wrapper/qwlclientbuffer_p.h
+ wayland_wrapper/qwlregion.cpp wayland_wrapper/qwlregion_p.h
+ INCLUDE_DIRECTORIES
+ ../shared
+ compositor_api
+ extensions
+ global
+ wayland_wrapper
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Wayland::Server
+ PRIVATE_MODULE_INTERFACE
+ Qt::CorePrivate
+ Qt::GuiPrivate
+)
+
+# Resources:
+set(compositor_resource_files
+ "shaders/surface.vert"
+ "shaders/surface_oes_external.frag"
+ "shaders/surface_rgba.frag"
+ "shaders/surface_rgbx.frag"
+ "shaders/surface_y_u_v.frag"
+ "shaders/surface_y_uv.frag"
+ "shaders/surface_y_xuxv.frag"
+)
+
+qt_add_resource(WaylandCompositor "compositor"
+ PREFIX
+ "/qt-project.org/wayland/compositor"
+ FILES
+ ${compositor_resource_files}
+)
+
+
+qt6_generate_wayland_protocol_server_sources(WaylandCompositor
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/idle-inhibit-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/ivi-application.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/scaler.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/viewporter.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/xdg-decoration-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/xdg-output-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/xdg-shell.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/xdg-shell-unstable-v6.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/qt-key-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/qt-windowmanager.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/touch-extension.xml
+)
+
+#### Keys ignored in scope 1:.:.:compositor.pro:<TRUE>:
+# MODULE = "waylandcompositor"
+
+## Scopes:
+#####################################################################
+
+if(QT_FEATURE_opengl)
+
+ qt6_generate_wayland_protocol_server_sources(WaylandCompositor
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/hardware-integration.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/server-buffer-extension.xml
+ )
+
+endif()
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_opengl
+ SOURCES
+ hardware_integration/qwlclientbufferintegration.cpp hardware_integration/qwlclientbufferintegration_p.h
+ hardware_integration/qwlclientbufferintegrationfactory.cpp hardware_integration/qwlclientbufferintegrationfactory_p.h
+ hardware_integration/qwlclientbufferintegrationplugin.cpp hardware_integration/qwlclientbufferintegrationplugin_p.h
+ hardware_integration/qwlhardwarelayerintegration.cpp hardware_integration/qwlhardwarelayerintegration_p.h
+ hardware_integration/qwlhardwarelayerintegrationfactory.cpp hardware_integration/qwlhardwarelayerintegrationfactory_p.h
+ hardware_integration/qwlhardwarelayerintegrationplugin.cpp hardware_integration/qwlhardwarelayerintegrationplugin_p.h
+ hardware_integration/qwlhwintegration.cpp hardware_integration/qwlhwintegration_p.h
+ hardware_integration/qwlserverbufferintegration.cpp hardware_integration/qwlserverbufferintegration_p.h
+ hardware_integration/qwlserverbufferintegrationfactory.cpp hardware_integration/qwlserverbufferintegrationfactory_p.h
+ hardware_integration/qwlserverbufferintegrationplugin.cpp hardware_integration/qwlserverbufferintegrationplugin_p.h
+ PUBLIC_LIBRARIES
+ Qt::OpenGL
+)
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_xkbcommon
+ LIBRARIES
+ Qt::XkbCommonSupportPrivate
+ PUBLIC_LIBRARIES
+ XKB::XKB
+)
+
+qt_extend_target(WaylandCompositor CONDITION TARGET Qt::Quick
+ SOURCES
+ extensions/qwaylandivisurfaceintegration.cpp extensions/qwaylandivisurfaceintegration_p.h
+ extensions/qwaylandquickshellintegration.cpp extensions/qwaylandquickshellintegration.h
+ extensions/qwaylandquickshellsurfaceitem.cpp extensions/qwaylandquickshellsurfaceitem.h extensions/qwaylandquickshellsurfaceitem_p.h
+ extensions/qwaylandquickxdgoutputv1.cpp extensions/qwaylandquickxdgoutputv1.h
+ extensions/qwaylandwlshellintegration.cpp extensions/qwaylandwlshellintegration_p.h
+ extensions/qwaylandxdgshellintegration.cpp extensions/qwaylandxdgshellintegration_p.h
+ extensions/qwaylandxdgshellv5integration.cpp extensions/qwaylandxdgshellv5integration_p.h
+ extensions/qwaylandxdgshellv6integration.cpp extensions/qwaylandxdgshellv6integration_p.h
+ PUBLIC_LIBRARIES
+ Qt::Quick
+)
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_wayland_datadevice
+ SOURCES
+ wayland_wrapper/qwldatadevice.cpp wayland_wrapper/qwldatadevice_p.h
+ wayland_wrapper/qwldatadevicemanager.cpp wayland_wrapper/qwldatadevicemanager_p.h
+ wayland_wrapper/qwldataoffer.cpp wayland_wrapper/qwldataoffer_p.h
+ wayland_wrapper/qwldatasource.cpp wayland_wrapper/qwldatasource_p.h
+)
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_im
+ SOURCES
+ compositor_api/qwaylandinputmethodcontrol.cpp compositor_api/qwaylandinputmethodcontrol.h compositor_api/qwaylandinputmethodcontrol_p.h
+)
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_draganddrop
+ SOURCES
+ compositor_api/qwaylanddrag.cpp compositor_api/qwaylanddrag.h
+)
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_wayland_compositor_quick
+ SOURCES
+ compositor_api/qwaylandquickcompositor.cpp compositor_api/qwaylandquickcompositor.h
+ compositor_api/qwaylandquickitem.cpp compositor_api/qwaylandquickitem.h compositor_api/qwaylandquickitem_p.h
+ compositor_api/qwaylandquickoutput.cpp compositor_api/qwaylandquickoutput.h
+ compositor_api/qwaylandquicksurface.cpp compositor_api/qwaylandquicksurface.h
+ PUBLIC_LIBRARIES
+ Qt::Qml
+ Qt::QmlPrivate
+ Qt::Quick
+ Qt::QuickPrivate
+)
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_opengl AND QT_FEATURE_wayland_compositor_quick
+ SOURCES
+ compositor_api/qwaylandquickhardwarelayer.cpp compositor_api/qwaylandquickhardwarelayer_p.h
+)
+
+if(QT_FEATURE_opengl AND TARGET Qt::Quick)
+
+ qt6_generate_wayland_protocol_server_sources(WaylandCompositor
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/qt-texture-sharing-unstable-v1.xml
+ )
+
+endif()
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_opengl AND TARGET Qt::Quick
+ SOURCES
+ extensions/qwltexturesharingextension.cpp extensions/qwltexturesharingextension_p.h
+)
+qt_add_docs(WaylandCompositor
+ doc/qtwaylandcompositor.qdocconf
+)
+
diff --git a/src/compositor/CMakeLists.txt b/src/compositor/CMakeLists.txt
new file mode 100644
index 000000000..6dea4ad9b
--- /dev/null
+++ b/src/compositor/CMakeLists.txt
@@ -0,0 +1,221 @@
+# Generated from compositor.pro.
+
+#####################################################################
+## WaylandCompositor Module:
+#####################################################################
+
+qt_add_module(WaylandCompositor
+ PLUGIN_TYPES wayland-graphics-integration-server wayland-hardware-layer-integration
+ SOURCES
+ ../shared/qwaylandinputmethodeventbuilder.cpp ../shared/qwaylandinputmethodeventbuilder_p.h
+ ../shared/qwaylandmimehelper.cpp ../shared/qwaylandmimehelper_p.h
+ ../shared/qwaylandsharedmemoryformathelper_p.h
+ compositor_api/qwaylandbufferref.cpp compositor_api/qwaylandbufferref.h
+ compositor_api/qwaylandclient.cpp compositor_api/qwaylandclient.h
+ compositor_api/qwaylandcompositor.cpp compositor_api/qwaylandcompositor.h compositor_api/qwaylandcompositor_p.h
+ compositor_api/qwaylanddestroylistener.cpp compositor_api/qwaylanddestroylistener.h compositor_api/qwaylanddestroylistener_p.h
+ compositor_api/qwaylandkeyboard.cpp compositor_api/qwaylandkeyboard.h compositor_api/qwaylandkeyboard_p.h
+ compositor_api/qwaylandkeymap.cpp compositor_api/qwaylandkeymap.h compositor_api/qwaylandkeymap_p.h
+ compositor_api/qwaylandoutput.cpp compositor_api/qwaylandoutput.h compositor_api/qwaylandoutput_p.h
+ compositor_api/qwaylandoutputmode.cpp compositor_api/qwaylandoutputmode.h compositor_api/qwaylandoutputmode_p.h
+ compositor_api/qwaylandpointer.cpp compositor_api/qwaylandpointer.h compositor_api/qwaylandpointer_p.h
+ compositor_api/qwaylandquickchildren.h
+ compositor_api/qwaylandresource.cpp compositor_api/qwaylandresource.h
+ compositor_api/qwaylandseat.cpp compositor_api/qwaylandseat.h compositor_api/qwaylandseat_p.h
+ compositor_api/qwaylandsurface.cpp compositor_api/qwaylandsurface.h compositor_api/qwaylandsurface_p.h
+ compositor_api/qwaylandsurfacegrabber.cpp compositor_api/qwaylandsurfacegrabber.h
+ compositor_api/qwaylandtouch.cpp compositor_api/qwaylandtouch.h compositor_api/qwaylandtouch_p.h
+ compositor_api/qwaylandview.cpp compositor_api/qwaylandview.h compositor_api/qwaylandview_p.h
+ extensions/pregenerated/3rdparty/qwayland-server-xdg-shell-unstable-v5.cpp extensions/pregenerated/3rdparty/qwayland-server-xdg-shell-unstable-v5_p.h
+ extensions/pregenerated/3rdparty/wayland-xdg-shell-unstable-v5-protocol.c
+ extensions/pregenerated/3rdparty/wayland-xdg-shell-unstable-v5-server-protocol_p.h
+ extensions/qwaylandidleinhibitv1.cpp extensions/qwaylandidleinhibitv1.h extensions/qwaylandidleinhibitv1_p.h
+ extensions/qwaylandiviapplication.cpp extensions/qwaylandiviapplication.h extensions/qwaylandiviapplication_p.h
+ extensions/qwaylandivisurface.cpp extensions/qwaylandivisurface.h extensions/qwaylandivisurface_p.h
+ extensions/qwaylandqtwindowmanager.cpp extensions/qwaylandqtwindowmanager.h extensions/qwaylandqtwindowmanager_p.h
+ extensions/qwaylandshell.cpp extensions/qwaylandshell.h extensions/qwaylandshell_p.h
+ extensions/qwaylandshellsurface.cpp extensions/qwaylandshellsurface.h
+ extensions/qwaylandtextinput.cpp extensions/qwaylandtextinput.h extensions/qwaylandtextinput_p.h
+ extensions/qwaylandtextinputmanager.cpp extensions/qwaylandtextinputmanager.h extensions/qwaylandtextinputmanager_p.h
+ extensions/qwaylandviewporter.cpp extensions/qwaylandviewporter.h extensions/qwaylandviewporter_p.h
+ extensions/qwaylandwlscaler.cpp extensions/qwaylandwlscaler.h extensions/qwaylandwlscaler_p.h
+ extensions/qwaylandwlshell.cpp extensions/qwaylandwlshell.h extensions/qwaylandwlshell_p.h
+ extensions/qwaylandxdgdecorationv1.cpp extensions/qwaylandxdgdecorationv1.h extensions/qwaylandxdgdecorationv1_p.h
+ extensions/qwaylandxdgoutputv1.cpp extensions/qwaylandxdgoutputv1.h extensions/qwaylandxdgoutputv1_p.h
+ extensions/qwaylandxdgshell.cpp extensions/qwaylandxdgshell.h extensions/qwaylandxdgshell_p.h
+ extensions/qwaylandxdgshellv5.cpp extensions/qwaylandxdgshellv5.h extensions/qwaylandxdgshellv5_p.h
+ extensions/qwaylandxdgshellv6.cpp extensions/qwaylandxdgshellv6.h extensions/qwaylandxdgshellv6_p.h
+ extensions/qwlqtkey.cpp extensions/qwlqtkey_p.h
+ extensions/qwlqttouch.cpp extensions/qwlqttouch_p.h
+ global/qtwaylandcompositorglobal.h
+ global/qwaylandcompositorextension.cpp global/qwaylandcompositorextension.h global/qwaylandcompositorextension_p.h
+ global/qwaylandquickextension.h
+ global/qwaylandutils_p.h
+ wayland_wrapper/qwlbuffermanager.cpp wayland_wrapper/qwlbuffermanager_p.h
+ wayland_wrapper/qwlclientbuffer.cpp wayland_wrapper/qwlclientbuffer_p.h
+ wayland_wrapper/qwlregion.cpp wayland_wrapper/qwlregion_p.h
+ INCLUDE_DIRECTORIES
+ ../shared
+ compositor_api
+ extensions
+ global
+ wayland_wrapper
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Wayland::Server
+ PRIVATE_MODULE_INTERFACE
+ Qt::CorePrivate
+ Qt::GuiPrivate
+)
+
+# Resources:
+set(compositor_resource_files
+ "shaders/surface.vert"
+ "shaders/surface_oes_external.frag"
+ "shaders/surface_rgba.frag"
+ "shaders/surface_rgbx.frag"
+ "shaders/surface_y_u_v.frag"
+ "shaders/surface_y_uv.frag"
+ "shaders/surface_y_xuxv.frag"
+)
+
+qt_add_resource(WaylandCompositor "compositor"
+ PREFIX
+ "/qt-project.org/wayland/compositor"
+ FILES
+ ${compositor_resource_files}
+)
+
+
+qt6_generate_wayland_protocol_server_sources(WaylandCompositor
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/idle-inhibit-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/ivi-application.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/scaler.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/viewporter.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/xdg-decoration-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/xdg-output-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/xdg-shell.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/protocol/xdg-shell-unstable-v6.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/qt-key-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/qt-windowmanager.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/touch-extension.xml
+)
+
+#### Keys ignored in scope 1:.:.:compositor.pro:<TRUE>:
+# MODULE = "waylandcompositor"
+
+## Scopes:
+#####################################################################
+
+if(QT_FEATURE_opengl)
+
+ qt6_generate_wayland_protocol_server_sources(WaylandCompositor
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/hardware-integration.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/server-buffer-extension.xml
+ )
+
+endif()
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_opengl
+ SOURCES
+ hardware_integration/qwlclientbufferintegration.cpp hardware_integration/qwlclientbufferintegration_p.h
+ hardware_integration/qwlclientbufferintegrationfactory.cpp hardware_integration/qwlclientbufferintegrationfactory_p.h
+ hardware_integration/qwlclientbufferintegrationplugin.cpp hardware_integration/qwlclientbufferintegrationplugin_p.h
+ hardware_integration/qwlhardwarelayerintegration.cpp hardware_integration/qwlhardwarelayerintegration_p.h
+ hardware_integration/qwlhardwarelayerintegrationfactory.cpp hardware_integration/qwlhardwarelayerintegrationfactory_p.h
+ hardware_integration/qwlhardwarelayerintegrationplugin.cpp hardware_integration/qwlhardwarelayerintegrationplugin_p.h
+ hardware_integration/qwlhwintegration.cpp hardware_integration/qwlhwintegration_p.h
+ hardware_integration/qwlserverbufferintegration.cpp hardware_integration/qwlserverbufferintegration_p.h
+ hardware_integration/qwlserverbufferintegrationfactory.cpp hardware_integration/qwlserverbufferintegrationfactory_p.h
+ hardware_integration/qwlserverbufferintegrationplugin.cpp hardware_integration/qwlserverbufferintegrationplugin_p.h
+ PUBLIC_LIBRARIES
+ Qt::OpenGL
+)
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_xkbcommon
+ LIBRARIES
+ Qt::XkbCommonSupportPrivate
+ PUBLIC_LIBRARIES
+ XKB::XKB
+ PRIVATE_MODULE_INTERFACE # special case QTBUG-83063
+ Qt::XkbCommonSupportPrivate # special case
+)
+
+qt_extend_target(WaylandCompositor CONDITION TARGET Qt::Quick
+ SOURCES
+ extensions/qwaylandivisurfaceintegration.cpp extensions/qwaylandivisurfaceintegration_p.h
+ extensions/qwaylandquickshellintegration.cpp extensions/qwaylandquickshellintegration.h
+ extensions/qwaylandquickshellsurfaceitem.cpp extensions/qwaylandquickshellsurfaceitem.h extensions/qwaylandquickshellsurfaceitem_p.h
+ extensions/qwaylandquickxdgoutputv1.cpp extensions/qwaylandquickxdgoutputv1.h
+ extensions/qwaylandwlshellintegration.cpp extensions/qwaylandwlshellintegration_p.h
+ extensions/qwaylandxdgshellintegration.cpp extensions/qwaylandxdgshellintegration_p.h
+ extensions/qwaylandxdgshellv5integration.cpp extensions/qwaylandxdgshellv5integration_p.h
+ extensions/qwaylandxdgshellv6integration.cpp extensions/qwaylandxdgshellv6integration_p.h
+ PUBLIC_LIBRARIES
+ Qt::Quick
+)
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_wayland_datadevice
+ SOURCES
+ wayland_wrapper/qwldatadevice.cpp wayland_wrapper/qwldatadevice_p.h
+ wayland_wrapper/qwldatadevicemanager.cpp wayland_wrapper/qwldatadevicemanager_p.h
+ wayland_wrapper/qwldataoffer.cpp wayland_wrapper/qwldataoffer_p.h
+ wayland_wrapper/qwldatasource.cpp wayland_wrapper/qwldatasource_p.h
+)
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_im
+ SOURCES
+ compositor_api/qwaylandinputmethodcontrol.cpp compositor_api/qwaylandinputmethodcontrol.h compositor_api/qwaylandinputmethodcontrol_p.h
+)
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_draganddrop
+ SOURCES
+ compositor_api/qwaylanddrag.cpp compositor_api/qwaylanddrag.h
+)
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_wayland_compositor_quick
+ SOURCES
+ compositor_api/qwaylandquickcompositor.cpp compositor_api/qwaylandquickcompositor.h
+ compositor_api/qwaylandquickitem.cpp compositor_api/qwaylandquickitem.h compositor_api/qwaylandquickitem_p.h
+ compositor_api/qwaylandquickoutput.cpp compositor_api/qwaylandquickoutput.h
+ compositor_api/qwaylandquicksurface.cpp compositor_api/qwaylandquicksurface.h
+ PUBLIC_LIBRARIES
+ Qt::Qml
+ Qt::QmlPrivate
+ Qt::Quick
+ Qt::QuickPrivate
+)
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_opengl AND QT_FEATURE_wayland_compositor_quick
+ SOURCES
+ compositor_api/qwaylandquickhardwarelayer.cpp compositor_api/qwaylandquickhardwarelayer_p.h
+)
+
+if(QT_FEATURE_opengl AND TARGET Qt::Quick)
+
+ qt6_generate_wayland_protocol_server_sources(WaylandCompositor
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../extensions/qt-texture-sharing-unstable-v1.xml
+ )
+
+endif()
+
+qt_extend_target(WaylandCompositor CONDITION QT_FEATURE_opengl AND TARGET Qt::Quick
+ SOURCES
+ extensions/qwltexturesharingextension.cpp extensions/qwltexturesharingextension_p.h
+)
+qt_add_docs(WaylandCompositor
+ doc/qtwaylandcompositor.qdocconf
+)
+
+# special case begin
+qt_record_extra_qt_package_dependency(WaylandCompositor WaylandScannerTools "")
+# special case end
diff --git a/src/compositor/Qt6WaylandCompositorMacros.cmake b/src/compositor/Qt6WaylandCompositorMacros.cmake
new file mode 100644
index 000000000..15444e6cc
--- /dev/null
+++ b/src/compositor/Qt6WaylandCompositorMacros.cmake
@@ -0,0 +1,50 @@
+function(qt6_generate_wayland_protocol_server_sources target)
+ qt_parse_all_arguments(arg "qt6_generate_wayland_protocol_server_sources" "" "" "FILES" ${ARGN})
+ get_target_property(target_binary_dir ${target} BINARY_DIR)
+
+ foreach(protocol_file IN LISTS arg_FILES)
+ get_filename_component(protocol_name "${protocol_file}" NAME_WLE)
+
+ set(waylandscanner_header_output "${target_binary_dir}/wayland-${protocol_name}-server-protocol.h")
+ set(waylandscanner_code_output "${target_binary_dir}/wayland-${protocol_name}-protocol.c")
+ set(qtwaylandscanner_header_output "${target_binary_dir}/qwayland-server-${protocol_name}.h")
+ set(qtwaylandscanner_code_output "${target_binary_dir}/qwayland-server-${protocol_name}.cpp")
+
+ add_custom_command(
+ OUTPUT "${waylandscanner_header_output}"
+ #TODO: Maybe put the files in ${CMAKE_CURRENT_BINARY_DIR/wayland_generated instead?
+ COMMAND Wayland::Scanner --include-core-only server-header < "${protocol_file}" > "${waylandscanner_header_output}"
+ )
+ add_custom_command(
+ OUTPUT "${waylandscanner_code_output}"
+ COMMAND Wayland::Scanner --include-core-only code < "${protocol_file}" > "${waylandscanner_code_output}"
+ )
+
+ # TODO: make this less hacky
+ set(wayland_include_dir "")
+ #get_target_property(qt_module "${target}" QT_MODULE)
+ get_target_property(is_for_module "${target}" INTERFACE_MODULE_HAS_HEADERS)
+ if (is_for_module)
+ set(wayland_include_dir "QtWaylandCompositor/private")
+ endif()
+
+ add_custom_command(
+ OUTPUT "${qtwaylandscanner_header_output}"
+ COMMAND Qt6::qtwaylandscanner server-header "${protocol_file}" "${wayland_include_dir}" > "${qtwaylandscanner_header_output}"
+ )
+
+ add_custom_command(
+ OUTPUT "${qtwaylandscanner_code_output}"
+ COMMAND Qt6::qtwaylandscanner server-code "${protocol_file}" "${wayland_include_dir}" > "${qtwaylandscanner_code_output}"
+ )
+
+ target_sources(${target} PRIVATE
+ "${waylandscanner_header_output}"
+ "${waylandscanner_code_output}"
+ "${qtwaylandscanner_header_output}"
+ "${qtwaylandscanner_code_output}"
+ )
+ endforeach()
+ target_include_directories(${target} PRIVATE ${target_binary_dir})
+endfunction()
+
diff --git a/src/compositor/compositor_api/qwaylandclient.cpp b/src/compositor/compositor_api/qwaylandclient.cpp
index 2dba85faf..950424adb 100644
--- a/src/compositor/compositor_api/qwaylandclient.cpp
+++ b/src/compositor/compositor_api/qwaylandclient.cpp
@@ -273,3 +273,6 @@ void QWaylandClient::close()
}
QT_END_NAMESPACE
+
+#include "moc_qwaylandclient.cpp"
+
diff --git a/src/compositor/compositor_api/qwaylandcompositor.cpp b/src/compositor/compositor_api/qwaylandcompositor.cpp
index 83833991f..2701837c4 100644
--- a/src/compositor/compositor_api/qwaylandcompositor.cpp
+++ b/src/compositor/compositor_api/qwaylandcompositor.cpp
@@ -1044,3 +1044,5 @@ void QWaylandCompositor::grabSurface(QWaylandSurfaceGrabber *grabber, const QWay
}
QT_END_NAMESPACE
+
+#include "moc_qwaylandcompositor.cpp"
diff --git a/src/compositor/compositor_api/qwaylanddestroylistener.cpp b/src/compositor/compositor_api/qwaylanddestroylistener.cpp
index 958ea311c..a243e032c 100644
--- a/src/compositor/compositor_api/qwaylanddestroylistener.cpp
+++ b/src/compositor/compositor_api/qwaylanddestroylistener.cpp
@@ -63,3 +63,5 @@ void QWaylandDestroyListenerPrivate::handler(wl_listener *listener, void *data)
}
QT_END_NAMESPACE
+
+#include "moc_qwaylanddestroylistener.cpp"
diff --git a/src/compositor/compositor_api/qwaylanddrag.cpp b/src/compositor/compositor_api/qwaylanddrag.cpp
index 2108c3906..9bb48b4c3 100644
--- a/src/compositor/compositor_api/qwaylanddrag.cpp
+++ b/src/compositor/compositor_api/qwaylanddrag.cpp
@@ -130,3 +130,5 @@ void QWaylandDrag::cancelDrag()
}
QT_END_NAMESPACE
+
+#include "moc_qwaylanddrag.cpp"
diff --git a/src/compositor/compositor_api/qwaylandinputmethodcontrol.cpp b/src/compositor/compositor_api/qwaylandinputmethodcontrol.cpp
index 5ecb9dfa0..1925d2123 100644
--- a/src/compositor/compositor_api/qwaylandinputmethodcontrol.cpp
+++ b/src/compositor/compositor_api/qwaylandinputmethodcontrol.cpp
@@ -150,3 +150,5 @@ QWaylandTextInput *QWaylandInputMethodControlPrivate::textInput() const
{
return QWaylandTextInput::findIn(seat);
}
+
+#include "moc_qwaylandinputmethodcontrol.cpp"
diff --git a/src/compositor/compositor_api/qwaylandkeyboard.cpp b/src/compositor/compositor_api/qwaylandkeyboard.cpp
index 210b683ff..223f19738 100644
--- a/src/compositor/compositor_api/qwaylandkeyboard.cpp
+++ b/src/compositor/compositor_api/qwaylandkeyboard.cpp
@@ -589,3 +589,5 @@ uint QWaylandKeyboard::keyToScanCode(int qtKey) const
}
QT_END_NAMESPACE
+
+#include "moc_qwaylandkeyboard.cpp"
diff --git a/src/compositor/compositor_api/qwaylandkeymap.cpp b/src/compositor/compositor_api/qwaylandkeymap.cpp
index bd58a84e1..d2f67192d 100644
--- a/src/compositor/compositor_api/qwaylandkeymap.cpp
+++ b/src/compositor/compositor_api/qwaylandkeymap.cpp
@@ -120,3 +120,5 @@ QWaylandKeymapPrivate::QWaylandKeymapPrivate(const QString &layout, const QStrin
}
QT_END_NAMESPACE
+
+#include "moc_qwaylandkeymap.cpp"
diff --git a/src/compositor/configure.cmake b/src/compositor/configure.cmake
new file mode 100644
index 000000000..a08673f03
--- /dev/null
+++ b/src/compositor/configure.cmake
@@ -0,0 +1,207 @@
+
+
+#### Inputs
+
+
+
+#### Libraries
+
+if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS)
+ qt_find_package(Wayland PROVIDED_TARGETS Wayland::Server)
+endif()
+if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS)
+ qt_find_package(Wayland PROVIDED_TARGETS Wayland::Egl)
+endif()
+if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS)
+ qt_find_package(Waylandkms PROVIDED_TARGETS PkgConfig::Waylandkms)
+endif()
+qt_find_package(XComposite PROVIDED_TARGETS PkgConfig::XComposite)
+
+
+#### Tests
+
+# drm-egl-server
+qt_config_compile_test(drm_egl_server
+ LIBRARIES
+ EGL::EGL
+ CODE
+"
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+
+int main(int argc, char **argv)
+{
+ (void)argc; (void)argv;
+ /* BEGIN TEST: */
+#ifdef EGL_MESA_drm_image
+return 0;
+#else
+#error Requires EGL_MESA_drm_image to be defined
+return 1;
+#endif
+ /* END TEST: */
+ return 0;
+}
+")
+
+# libhybris-egl-server
+qt_config_compile_test(libhybris_egl_server
+ LIBRARIES
+ EGL::EGL
+ CODE
+"
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+#include <hybris/eglplatformcommon/hybris_nativebufferext.h>
+
+int main(int argc, char **argv)
+{
+ (void)argc; (void)argv;
+ /* BEGIN TEST: */
+#ifdef EGL_HYBRIS_native_buffer
+return 0;
+#else
+#error Requires EGL_HYBRIS_native_buffer to be defined
+return 1;
+#endif
+ /* END TEST: */
+ return 0;
+}
+")
+
+# dmabuf-server-buffer
+qt_config_compile_test(dmabuf_server_buffer
+ LABEL "Linux dma-buf Buffer Sharing"
+ LIBRARIES
+ EGL::EGL
+ CODE
+"
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+#include <drm_fourcc.h>
+
+int main(int argc, char **argv)
+{
+ (void)argc; (void)argv;
+ /* BEGIN TEST: */
+#ifdef EGL_LINUX_DMA_BUF_EXT
+return 0;
+#else
+#error Requires EGL_LINUX_DMA_BUF_EXT
+return 1;
+#endif
+ /* END TEST: */
+ return 0;
+}
+")
+
+# dmabuf-client-buffer
+qt_config_compile_test(dmabuf_client_buffer
+ LABEL "Linux Client dma-buf Buffer Sharing"
+ LIBRARIES
+ EGL::EGL
+ CODE
+"
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+#include <drm_mode.h>
+#include <drm_fourcc.h>
+
+int main(int argc, char **argv)
+{
+ (void)argc; (void)argv;
+ /* BEGIN TEST: */
+// test if DMA BUF is supported
+#ifndef EGL_LINUX_DMA_BUF_EXT
+#error DMA BUF Extension not available
+#endif
+// test if DMA BUF import modifier extension is supported
+#ifndef EGL_EXT_image_dma_buf_import_modifiers
+#error DMA BUF Import modifier extension not available
+#endif
+return 0;
+ /* END TEST: */
+ return 0;
+}
+")
+
+# vulkan-server-buffer
+qt_config_compile_test(vulkan_server_buffer
+ LABEL "Vulkan Buffer Sharing"
+ CODE
+"
+#include <vulkan/vulkan.h>
+
+int main(int argc, char **argv)
+{
+ (void)argc; (void)argv;
+ /* BEGIN TEST: */
+VkExportMemoryAllocateInfoKHR exportAllocInfo = {};
+exportAllocInfo.sType = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR;
+exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;
+return 0;
+ /* END TEST: */
+ return 0;
+}
+")
+
+
+
+#### Features
+
+qt_feature("wayland_server" PRIVATE
+ LABEL "Qt Wayland Compositor"
+ CONDITION NOT WIN32 AND Wayland_FOUND AND WaylandScanner_FOUND
+)
+qt_feature("wayland_datadevice" PRIVATE
+ CONDITION QT_FEATURE_draganddrop OR QT_FEATURE_clipboard
+)
+qt_feature("wayland_egl" PRIVATE
+ LABEL "EGL"
+ CONDITION QT_FEATURE_wayland_server AND QT_FEATURE_opengl AND QT_FEATURE_egl AND Wayland_FOUND
+)
+qt_feature("wayland_brcm" PRIVATE
+ LABEL "Raspberry Pi"
+ CONDITION QT_FEATURE_wayland_server AND QT_FEATURE_eglfs_brcm
+)
+qt_feature("xcomposite_egl" PRIVATE
+ LABEL "XComposite EGL"
+ CONDITION QT_FEATURE_wayland_server AND QT_FEATURE_egl AND QT_FEATURE_opengl AND XComposite_FOUND
+)
+qt_feature("xcomposite_glx" PRIVATE
+ LABEL "XComposite EGL"
+ CONDITION QT_FEATURE_wayland_server AND QT_FEATURE_opengl AND NOT QT_FEATURE_opengles2 AND QT_FEATURE_xlib AND XComposite_FOUND
+)
+qt_feature("wayland_drm_egl_server_buffer" PRIVATE
+ LABEL "DRM EGL"
+ CONDITION QT_FEATURE_wayland_server AND QT_FEATURE_opengl AND QT_FEATURE_egl AND TEST_drm_egl_server
+)
+qt_feature("wayland_libhybris_egl_server_buffer" PRIVATE
+ LABEL "libhybris EGL"
+ CONDITION QT_FEATURE_wayland_server AND QT_FEATURE_opengl AND QT_FEATURE_egl AND TEST_libhybris_egl_server
+)
+qt_feature("wayland_dmabuf_server_buffer" PRIVATE
+ LABEL "Linux dma-buf server buffer integration"
+ CONDITION QT_FEATURE_wayland_server AND QT_FEATURE_opengl AND QT_FEATURE_egl AND TEST_dmabuf_server_buffer
+)
+qt_feature("wayland_dmabuf_client_buffer" PRIVATE
+ LABEL "Linux dma-buf client buffer integration"
+ CONDITION QT_FEATURE_wayland_server AND QT_FEATURE_opengl AND QT_FEATURE_egl AND TEST_dmabuf_client_buffer
+)
+qt_feature("wayland_vulkan_server_buffer" PRIVATE
+ LABEL "Vulkan-based server buffer integration"
+ CONDITION QT_FEATURE_wayland_server AND QT_FEATURE_opengl AND QT_FEATURE_egl AND TEST_vulkan_server_buffer
+)
+qt_feature("wayland_shm_emulation_server_buffer" PRIVATE
+ LABEL "Shm emulation server buffer"
+ CONDITION QT_FEATURE_wayland_server AND QT_FEATURE_opengl
+)
+qt_feature("wayland_layer_integration_vsp2" PRIVATE
+ LABEL "VSP2 hardware layer integration"
+ CONDITION QT_FEATURE_wayland_server AND QT_FEATURE_eglfs_vsp2 AND Waylandkms_FOUND
+)
+qt_feature("wayland_compositor_quick" PUBLIC
+ LABEL "QtQuick integration for wayland compositor"
+ PURPOSE "Allows QtWayland compositor types to be used with QtQuick"
+ CONDITION QT_FEATURE_wayland_server AND TARGET Qt::Quick AND QT_FEATURE_opengl
+)
diff --git a/src/compositor/configure.json b/src/compositor/configure.json
index 42df2ddf0..5b348c12b 100644
--- a/src/compositor/configure.json
+++ b/src/compositor/configure.json
@@ -73,20 +73,6 @@
{ "type": "pkgConfig", "args": "xcomposite" },
"-lxcomposite"
]
- },
- "glx": {
- "headers": "GL/glx.h",
- "test": {
- "main": [
- "Display *dpy = XOpenDisplay(0);",
- "int items = 0;",
- "GLXFBConfig *fbc = glXChooseFBConfig(dpy, DefaultScreen(dpy), 0 , &items);"
- ]
- },
- "sources": [
- { "type": "pkgConfig", "args": "x11 gl" },
- "-lX11 -lGl"
- ]
}
},
@@ -224,7 +210,7 @@
},
"xcomposite-glx": {
"label": "XComposite EGL",
- "condition": "features.wayland-server && features.opengl && !features.opengles2 && libs.xcomposite && libs.glx",
+ "condition": "features.wayland-server && features.opengl && !features.opengles2 && features.xlib && libs.xcomposite",
"output": [ "privateFeature" ]
},
"wayland-drm-egl-server-buffer": {
diff --git a/src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri b/src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri
index a2f5376a9..72897d151 100644
--- a/src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri
+++ b/src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri
@@ -1,7 +1,7 @@
INCLUDEPATH += $$PWD
include ($$PWD/../xcomposite_share/xcomposite_share.pri)
-QMAKE_USE += wayland-client glx libdl
+QMAKE_USE += wayland-client libdl
QT += glx_support-private
diff --git a/src/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pri b/src/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pri
index 423ae1815..c02c873a6 100644
--- a/src/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pri
+++ b/src/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pri
@@ -1,6 +1,6 @@
include($$PWD/../xcomposite_share/xcomposite_share.pri)
-QMAKE_USE_PRIVATE += wayland-server glx
+QMAKE_USE_PRIVATE += wayland-server xlib
INCLUDEPATH += $$PWD
diff --git a/src/imports/CMakeLists.txt b/src/imports/CMakeLists.txt
new file mode 100644
index 000000000..96fd56168
--- /dev/null
+++ b/src/imports/CMakeLists.txt
@@ -0,0 +1,9 @@
+# Generated from imports.pro.
+
+if(TARGET Qt::Quick AND TARGET Qt::WaylandCompositor)
+ add_subdirectory(compositor)
+endif()
+if(QT_FEATURE_opengl AND TARGET Qt::Quick AND TARGET Qt::WaylandClient AND TARGET Qt::WaylandCompositor)
+ add_subdirectory(texture-sharing)
+ add_subdirectory(texture-sharing-extension)
+endif()
diff --git a/src/imports/compositor/CMakeLists.txt b/src/imports/compositor/CMakeLists.txt
new file mode 100644
index 000000000..936701695
--- /dev/null
+++ b/src/imports/compositor/CMakeLists.txt
@@ -0,0 +1,38 @@
+# Generated from compositor.pro.
+
+#####################################################################
+## qwaylandcompositorplugin Plugin:
+#####################################################################
+
+qt_add_qml_module(qwaylandcompositorplugin
+ URI "QtWayland.Compositor"
+ VERSION "1.${CMAKE_PROJECT_VERSION_MINOR}"
+ CLASSNAME QWaylandCompositorPlugin
+ SKIP_TYPE_REGISTRATION
+ SOURCES
+ qwaylandmousetracker.cpp qwaylandmousetracker_p.h
+ qwaylandquickcompositorplugin.cpp
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::QmlPrivate
+ Qt::QuickPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+#### Ignored generated resource: ${CMAKE_CURRENT_BINARY_DIR}/compositor.qrc
+#### Keys ignored in scope 1:.:.:compositor.pro:<TRUE>:
+# COMPOSITOR_QML_FILES = "WaylandOutputWindow.qml" "WaylandCursorItem.qml"
+# CXX_MODULE = "qml"
+# IMPORT_VERSION = "1.$$QT_MINOR_VERSION"
+# QMAKE_QMLPLUGINDUMP_FLAGS = "-defaultplatform"
+# RESOURCE_CONTENT = "<RCC>" "<qresource prefix="/QtWayland/Compositor">" "</qresource>" "</RCC>"
+# TARGETPATH = "QtWayland/Compositor"
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:compositor.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# QML_FILES = "$$COMPOSITOR_QML_FILES"
diff --git a/src/imports/texture-sharing-extension/CMakeLists.txt b/src/imports/texture-sharing-extension/CMakeLists.txt
new file mode 100644
index 000000000..761c3a24e
--- /dev/null
+++ b/src/imports/texture-sharing-extension/CMakeLists.txt
@@ -0,0 +1,28 @@
+# Generated from texture-sharing-extension.pro.
+
+#####################################################################
+## qwaylandtexturesharingextension Plugin:
+#####################################################################
+
+qt_add_qml_module(qwaylandtexturesharingextension
+ URI "QtWayland.Compositor.TextureSharingExtension"
+ VERSION "1.${CMAKE_PROJECT_VERSION_MINOR}"
+ CLASSNAME QWaylandTextureSharingExtensionPlugin
+ SKIP_TYPE_REGISTRATION
+ SOURCES
+ plugin.cpp
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::Qml
+ Qt::QuickPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+#### Keys ignored in scope 1:.:.:texture-sharing-extension.pro:<TRUE>:
+# CXX_MODULE = "qml"
+# IMPORT_VERSION = "1.$$QT_MINOR_VERSION"
+# TARGETPATH = "QtWayland/Compositor/TextureSharingExtension"
diff --git a/src/imports/texture-sharing/CMakeLists.txt b/src/imports/texture-sharing/CMakeLists.txt
new file mode 100644
index 000000000..baf118d24
--- /dev/null
+++ b/src/imports/texture-sharing/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from texture-sharing.pro.
+
+#####################################################################
+## qwaylandtexturesharing Plugin:
+#####################################################################
+
+qt_add_qml_module(qwaylandtexturesharing
+ URI "QtWayland.Client.TextureSharing"
+ VERSION "1.${CMAKE_PROJECT_VERSION_MINOR}"
+ CLASSNAME QWaylandTextureSharingPlugin
+ SKIP_TYPE_REGISTRATION
+ SOURCES
+ plugin.cpp
+ sharedtextureprovider.cpp sharedtextureprovider.h
+ texturesharingextension.cpp texturesharingextension.h
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::OpenGL
+ Qt::Qml
+ Qt::QuickPrivate
+ Qt::WaylandClient
+ Qt::WaylandClientPrivate
+)
+
+qt6_generate_wayland_protocol_client_sources(qwaylandtexturesharing
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../extensions/qt-texture-sharing-unstable-v1.xml
+)
+
+#### Keys ignored in scope 1:.:.:texture-sharing.pro:<TRUE>:
+# CXX_MODULE = "qml"
+# IMPORT_VERSION = "1.$$QT_MINOR_VERSION"
+# TARGETPATH = "QtWayland/Client/TextureSharing"
diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt
new file mode 100644
index 000000000..ef58376ae
--- /dev/null
+++ b/src/plugins/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Generated from plugins.pro.
+
+add_subdirectory(hardwareintegration)
+if(TARGET Qt::WaylandClient)
+ add_subdirectory(platforms)
+ add_subdirectory(decorations)
+ add_subdirectory(shellintegration)
+endif()
diff --git a/src/plugins/decorations/CMakeLists.txt b/src/plugins/decorations/CMakeLists.txt
new file mode 100644
index 000000000..fd7fbeb20
--- /dev/null
+++ b/src/plugins/decorations/CMakeLists.txt
@@ -0,0 +1,3 @@
+# Generated from decorations.pro.
+
+add_subdirectory(bradient)
diff --git a/src/plugins/decorations/bradient/CMakeLists.txt b/src/plugins/decorations/bradient/CMakeLists.txt
new file mode 100644
index 000000000..9bd875a40
--- /dev/null
+++ b/src/plugins/decorations/bradient/CMakeLists.txt
@@ -0,0 +1,20 @@
+# Generated from bradient.pro.
+
+#####################################################################
+## QWaylandBradientDecorationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandBradientDecorationPlugin
+ OUTPUT_NAME bradient
+ TYPE wayland-decoration-client
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+#### Keys ignored in scope 1:.:.:bradient.pro:<TRUE>:
+# OTHER_FILES = "bradient.json"
diff --git a/src/plugins/hardwareintegration/CMakeLists.txt b/src/plugins/hardwareintegration/CMakeLists.txt
new file mode 100644
index 000000000..656b43b85
--- /dev/null
+++ b/src/plugins/hardwareintegration/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Generated from hardwareintegration.pro.
+
+if(TARGET Qt::WaylandClient)
+ add_subdirectory(client)
+endif()
+if(TARGET Qt::WaylandCompositor)
+ add_subdirectory(compositor)
+endif()
diff --git a/src/plugins/hardwareintegration/client/CMakeLists.txt b/src/plugins/hardwareintegration/client/CMakeLists.txt
new file mode 100644
index 000000000..32493e4bc
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/CMakeLists.txt
@@ -0,0 +1,29 @@
+# Generated from client.pro.
+
+if(QT_FEATURE_wayland_egl)
+ add_subdirectory(wayland-egl)
+endif()
+if(QT_FEATURE_wayland_brcm)
+ add_subdirectory(brcm-egl)
+endif()
+if(QT_FEATURE_xcomposite_egl)
+ add_subdirectory(xcomposite-egl)
+endif()
+if(QT_FEATURE_xcomposite_glx)
+ add_subdirectory(xcomposite-glx)
+endif()
+if(QT_FEATURE_wayland_drm_egl_server_buffer)
+ add_subdirectory(drm-egl-server)
+endif()
+if(QT_FEATURE_wayland_libhybris_egl_server_buffer)
+ add_subdirectory(libhybris-egl-server)
+endif()
+if(QT_FEATURE_wayland_shm_emulation_server_buffer)
+ add_subdirectory(shm-emulation-server)
+endif()
+if(QT_FEATURE_wayland_dmabuf_server_buffer)
+ add_subdirectory(dmabuf-server)
+endif()
+if(QT_FEATURE_wayland_vulkan_server_buffer)
+ add_subdirectory(vulkan-server)
+endif()
diff --git a/src/plugins/hardwareintegration/client/brcm-egl/CMakeLists.txt b/src/plugins/hardwareintegration/client/brcm-egl/CMakeLists.txt
new file mode 100644
index 000000000..038a8843c
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/brcm-egl/CMakeLists.txt
@@ -0,0 +1,33 @@
+# Generated from brcm-egl.pro.
+
+#####################################################################
+## QWaylandBrcmEglClientBufferPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandBrcmEglClientBufferPlugin
+ OUTPUT_NAME brcm-egl
+ TYPE wayland-graphics-integration-client
+ SOURCES
+ ../../../../hardwareintegration/client/brcm-egl/qwaylandbrcmeglintegration.cpp ../../../../hardwareintegration/client/brcm-egl/qwaylandbrcmeglintegration.h
+ ../../../../hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp ../../../../hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.h
+ ../../../../hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.cpp ../../../../hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/brcm-egl
+ PUBLIC_LIBRARIES
+ ${CMAKE_DL_LIBS}
+ EGL::EGL
+ Qt::Core
+ Qt::EglSupportPrivate
+ Qt::Gui
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(QWaylandBrcmEglClientBufferPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/client/brcm-egl/../../../extensions/brcm.xml
+)
+
+#### Keys ignored in scope 1:.:.:brcm-egl.pro:<TRUE>:
+# OTHER_FILES = "brcm-egl.json"
diff --git a/src/plugins/hardwareintegration/client/dmabuf-server/CMakeLists.txt b/src/plugins/hardwareintegration/client/dmabuf-server/CMakeLists.txt
new file mode 100644
index 000000000..f31e868ac
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/dmabuf-server/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from dmabuf-server.pro.
+
+#####################################################################
+## DmaBufServerBufferPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(DmaBufServerBufferPlugin
+ OUTPUT_NAME dmabuf-server
+ TYPE wayland-graphics-integration-client
+ SOURCES
+ ../../../../hardwareintegration/client/dmabuf-server/dmabufserverbufferintegration.cpp ../../../../hardwareintegration/client/dmabuf-server/dmabufserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/dmabuf-server
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ Qt::Core
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(DmaBufServerBufferPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/client/dmabuf-server/../../../extensions/qt-dmabuf-server-buffer.xml
+)
+
+#### Keys ignored in scope 1:.:.:dmabuf-server.pro:<TRUE>:
+# OTHER_FILES = "dmabuf-server.json"
+# QMAKE_CXXFLAGS_WARN_ON = "--Wcast-qual"
diff --git a/src/plugins/hardwareintegration/client/drm-egl-server/CMakeLists.txt b/src/plugins/hardwareintegration/client/drm-egl-server/CMakeLists.txt
new file mode 100644
index 000000000..ce3f94254
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/drm-egl-server/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from drm-egl-server.pro.
+
+#####################################################################
+## DrmEglServerBufferPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(DrmEglServerBufferPlugin
+ OUTPUT_NAME drm-egl-server
+ TYPE wayland-graphics-integration-client
+ SOURCES
+ ../../../../hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.cpp ../../../../hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/drm-egl-server
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ Qt::Core
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(DrmEglServerBufferPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/client/drm-egl-server/../../../extensions/drm-egl-server-buffer.xml
+)
+
+#### Keys ignored in scope 1:.:.:drm-egl-server.pro:<TRUE>:
+# OTHER_FILES = "drm-egl-server.json"
+# QMAKE_CXXFLAGS_WARN_ON = "--Wcast-qual"
diff --git a/src/plugins/hardwareintegration/client/libhybris-egl-server/CMakeLists.txt b/src/plugins/hardwareintegration/client/libhybris-egl-server/CMakeLists.txt
new file mode 100644
index 000000000..24cc9219e
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/libhybris-egl-server/CMakeLists.txt
@@ -0,0 +1,29 @@
+# Generated from libhybris-egl-server.pro.
+
+#####################################################################
+## LibHybrisEglServerBufferPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(LibHybrisEglServerBufferPlugin
+ OUTPUT_NAME libhybris-egl-server
+ TYPE wayland-graphics-integration-client
+ SOURCES
+ ../../../../hardwareintegration/client/libhybris-egl-server/libhybriseglserverbufferintegration.cpp ../../../../hardwareintegration/client/libhybris-egl-server/libhybriseglserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/libhybris-egl-server
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(LibHybrisEglServerBufferPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/client/libhybris-egl-server/../../../extensions/libhybris-egl-server-buffer.xml
+)
+
+#### Keys ignored in scope 1:.:.:libhybris-egl-server.pro:<TRUE>:
+# OTHER_FILES = "libhybris-egl-server.json"
diff --git a/src/plugins/hardwareintegration/client/shm-emulation-server/CMakeLists.txt b/src/plugins/hardwareintegration/client/shm-emulation-server/CMakeLists.txt
new file mode 100644
index 000000000..aa6e44331
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/shm-emulation-server/CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from shm-emulation-server.pro.
+
+#####################################################################
+## ShmServerBufferPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(ShmServerBufferPlugin
+ OUTPUT_NAME shm-emulation-server
+ TYPE wayland-graphics-integration-client
+ SOURCES
+ ../../../../hardwareintegration/client/shm-emulation-server/shmserverbufferintegration.cpp ../../../../hardwareintegration/client/shm-emulation-server/shmserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/shm-emulation-server
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(ShmServerBufferPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/client/shm-emulation-server/../../../extensions/shm-emulation-server-buffer.xml
+)
+
+#### Keys ignored in scope 1:.:.:shm-emulation-server.pro:<TRUE>:
+# OTHER_FILES = "shm-emulation-server.json"
+# QMAKE_CXXFLAGS_WARN_ON = "--Wcast-qual"
diff --git a/src/plugins/hardwareintegration/client/vulkan-server/CMakeLists.txt b/src/plugins/hardwareintegration/client/vulkan-server/CMakeLists.txt
new file mode 100644
index 000000000..64ea378fa
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/vulkan-server/CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from vulkan-server.pro.
+
+#####################################################################
+## VulkanServerBufferPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(VulkanServerBufferPlugin
+ OUTPUT_NAME vulkan-server
+ TYPE wayland-graphics-integration-client
+ SOURCES
+ ../../../../hardwareintegration/client/vulkan-server/vulkanserverbufferintegration.cpp ../../../../hardwareintegration/client/vulkan-server/vulkanserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/vulkan-server
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(VulkanServerBufferPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/client/vulkan-server/../../../extensions/qt-vulkan-server-buffer-unstable-v1.xml
+)
+
+#### Keys ignored in scope 1:.:.:vulkan-server.pro:<TRUE>:
+# OTHER_FILES = "vulkan-server.json"
+# QMAKE_CXXFLAGS_WARN_ON = "--Wcast-qual"
diff --git a/src/plugins/hardwareintegration/client/wayland-egl/CMakeLists.txt b/src/plugins/hardwareintegration/client/wayland-egl/CMakeLists.txt
new file mode 100644
index 000000000..2eaf092cc
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/wayland-egl/CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from wayland-egl.pro.
+
+#####################################################################
+## QWaylandEglClientBufferPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandEglClientBufferPlugin
+ OUTPUT_NAME qt-plugin-wayland-egl
+ TYPE wayland-graphics-integration-client
+ SOURCES
+ ../../../../hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.cpp ../../../../hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.h
+ ../../../../hardwareintegration/client/wayland-egl/qwaylandeglinclude.h
+ ../../../../hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp ../../../../hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
+ ../../../../hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp ../../../../hardwareintegration/client/wayland-egl/qwaylandglcontext.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/wayland-egl
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ Qt::Core
+ Qt::EglSupportPrivate
+ Qt::Gui
+ Qt::OpenGLPrivate
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ Wayland::Egl
+)
+
+#### Keys ignored in scope 1:.:.:wayland-egl.pro:<TRUE>:
+# OTHER_FILES = "wayland-egl.json"
diff --git a/src/plugins/hardwareintegration/client/xcomposite-egl/CMakeLists.txt b/src/plugins/hardwareintegration/client/xcomposite-egl/CMakeLists.txt
new file mode 100644
index 000000000..972cb1ace
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/xcomposite-egl/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Generated from xcomposite-egl.pro.
+
+#####################################################################
+## QWaylandXCompositeEglClientBufferPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandXCompositeEglClientBufferPlugin
+ OUTPUT_NAME xcomposite-egl
+ TYPE wayland-graphics-integration-client
+ SOURCES
+ ../../../../hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglclientbufferintegration.cpp ../../../../hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglclientbufferintegration.h
+ ../../../../hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglcontext.cpp ../../../../hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglcontext.h
+ ../../../../hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp ../../../../hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.h
+ ../../../../hardwareintegration/client/xcomposite_share/qwaylandxcompositebuffer.cpp ../../../../hardwareintegration/client/xcomposite_share/qwaylandxcompositebuffer.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/xcomposite-egl
+ ../../../../hardwareintegration/client/xcomposite_share
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::EglSupportPrivate
+ Qt::Gui
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ X11::X11
+)
+
+qt6_generate_wayland_protocol_client_sources(QWaylandXCompositeEglClientBufferPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/client/xcomposite_share/../../../extensions/xcomposite.xml
+)
+
+#### Keys ignored in scope 1:.:.:xcomposite-egl.pro:<TRUE>:
+# OTHER_FILES = "xcomposite-egl.json"
+# QMAKE_CXXFLAGS_WARN_ON = "--Wcast-qual"
diff --git a/src/plugins/hardwareintegration/client/xcomposite-glx/CMakeLists.txt b/src/plugins/hardwareintegration/client/xcomposite-glx/CMakeLists.txt
new file mode 100644
index 000000000..d074fe4ee
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/xcomposite-glx/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from xcomposite-glx.pro.
+
+#####################################################################
+## QWaylandXCompositeGlxClientBufferPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandXCompositeGlxClientBufferPlugin
+ OUTPUT_NAME xcomposite-glx
+ TYPE wayland-graphics-integration-client
+ SOURCES
+ ../../../../hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxcontext.cpp ../../../../hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxcontext.h
+ ../../../../hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxintegration.cpp ../../../../hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxintegration.h
+ ../../../../hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxwindow.cpp ../../../../hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxwindow.h
+ ../../../../hardwareintegration/client/xcomposite_share/qwaylandxcompositebuffer.cpp ../../../../hardwareintegration/client/xcomposite_share/qwaylandxcompositebuffer.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/xcomposite-glx
+ ../../../../hardwareintegration/client/xcomposite_share
+ PUBLIC_LIBRARIES
+ ${CMAKE_DL_LIBS}
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::GlxSupportPrivate
+ Qt::Gui
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ X11::X11
+)
+
+qt6_generate_wayland_protocol_client_sources(QWaylandXCompositeGlxClientBufferPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/client/xcomposite_share/../../../extensions/xcomposite.xml
+)
+
+#### Keys ignored in scope 1:.:.:xcomposite-glx.pro:<TRUE>:
+# OTHER_FILES = "xcomposite-glx.json"
diff --git a/src/plugins/hardwareintegration/compositor/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/CMakeLists.txt
new file mode 100644
index 000000000..67ca5a4b3
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/CMakeLists.txt
@@ -0,0 +1,34 @@
+# Generated from compositor.pro.
+
+add_subdirectory(hardwarelayer)
+if(QT_FEATURE_wayland_dmabuf_client_buffer)
+ add_subdirectory(linux-dmabuf-unstable-v1)
+endif()
+if(QT_FEATURE_wayland_egl)
+ add_subdirectory(wayland-egl)
+ add_subdirectory(wayland-eglstream-controller)
+endif()
+if(QT_FEATURE_wayland_brcm)
+ add_subdirectory(brcm-egl)
+endif()
+if(QT_FEATURE_xcomposite_egl)
+ add_subdirectory(xcomposite-egl)
+endif()
+if(QT_FEATURE_xcomposite_glx)
+ add_subdirectory(xcomposite-glx)
+endif()
+if(QT_FEATURE_wayland_drm_egl_server_buffer)
+ add_subdirectory(drm-egl-server)
+endif()
+if(QT_FEATURE_wayland_libhybris_egl_server_buffer)
+ add_subdirectory(libhybris-egl-server)
+endif()
+if(QT_FEATURE_wayland_shm_emulation_server_buffer)
+ add_subdirectory(shm-emulation-server)
+endif()
+if(QT_FEATURE_wayland_dmabuf_server_buffer)
+ add_subdirectory(dmabuf-server)
+endif()
+if(QT_FEATURE_wayland_vulkan_server_buffer)
+ add_subdirectory(vulkan-server)
+endif()
diff --git a/src/plugins/hardwareintegration/compositor/brcm-egl/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/brcm-egl/CMakeLists.txt
new file mode 100644
index 000000000..fb3dc1adf
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/brcm-egl/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from brcm-egl.pro.
+
+#####################################################################
+## QWaylandBrcmClientBufferIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandBrcmClientBufferIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-brcm-egl
+ TYPE wayland-graphics-integration-server
+ SOURCES
+ ../../../../hardwareintegration/compositor/brcm-egl/brcmbuffer.cpp ../../../../hardwareintegration/compositor/brcm-egl/brcmbuffer.h
+ ../../../../hardwareintegration/compositor/brcm-egl/brcmeglintegration.cpp ../../../../hardwareintegration/compositor/brcm-egl/brcmeglintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/brcm-egl
+ LIBRARIES
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+qt6_generate_wayland_protocol_server_sources(QWaylandBrcmClientBufferIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/brcm-egl/../../../extensions/brcm.xml
+)
+
+#### Keys ignored in scope 1:.:.:brcm-egl.pro:<TRUE>:
+# OTHER_FILES = "brcm-egl.json"
diff --git a/src/plugins/hardwareintegration/compositor/dmabuf-server/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/dmabuf-server/CMakeLists.txt
new file mode 100644
index 000000000..80cfd59b0
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/dmabuf-server/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Generated from dmabuf-server.pro.
+
+#####################################################################
+## DmaBufServerBufferIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(DmaBufServerBufferIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-dmabuf-server-buffer
+ TYPE wayland-graphics-integration-server
+ SOURCES
+ ../../../../hardwareintegration/compositor/dmabuf-server/dmabufserverbufferintegration.cpp ../../../../hardwareintegration/compositor/dmabuf-server/dmabufserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/dmabuf-server
+ LIBRARIES
+ EGL::EGL
+ Libdrm::Libdrm
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+qt6_generate_wayland_protocol_server_sources(DmaBufServerBufferIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/dmabuf-server/../../../extensions/qt-dmabuf-server-buffer.xml
+)
+
+#### Keys ignored in scope 1:.:.:dmabuf-server.pro:<TRUE>:
+# OTHER_FILES = "dmabuf-server.json"
diff --git a/src/plugins/hardwareintegration/compositor/drm-egl-server/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/drm-egl-server/CMakeLists.txt
new file mode 100644
index 000000000..95c726fe2
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/drm-egl-server/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from drm-egl-server.pro.
+
+#####################################################################
+## DrmEglServerBufferIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(DrmEglServerBufferIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-drm-egl-server-buffer
+ TYPE wayland-graphics-integration-server
+ SOURCES
+ ../../../../hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.cpp ../../../../hardwareintegration/compositor/drm-egl-server/drmeglserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/drm-egl-server
+ LIBRARIES
+ EGL::EGL
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+qt6_generate_wayland_protocol_server_sources(DrmEglServerBufferIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/drm-egl-server/../../../extensions/drm-egl-server-buffer.xml
+)
+
+#### Keys ignored in scope 1:.:.:drm-egl-server.pro:<TRUE>:
+# OTHER_FILES = "drm-egl-server.json"
diff --git a/src/plugins/hardwareintegration/compositor/hardwarelayer/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/hardwarelayer/CMakeLists.txt
new file mode 100644
index 000000000..5a40a66b3
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/hardwarelayer/CMakeLists.txt
@@ -0,0 +1,5 @@
+# Generated from hardwarelayer.pro.
+
+if(QT_FEATURE_wayland_layer_integration_vsp2)
+ add_subdirectory(vsp2)
+endif()
diff --git a/src/plugins/hardwareintegration/compositor/hardwarelayer/vsp2/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/hardwarelayer/vsp2/CMakeLists.txt
new file mode 100644
index 000000000..f1040f7d4
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/hardwarelayer/vsp2/CMakeLists.txt
@@ -0,0 +1,26 @@
+# Generated from vsp2.pro.
+
+#####################################################################
+## Vsp2HardwareLayerIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(Vsp2HardwareLayerIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-vsp2
+ TYPE wayland-hardware-layer-integration
+ SOURCES
+ ../../../../../hardwareintegration/compositor/hardwarelayer/vsp2/vsp2hardwarelayerintegration.cpp ../../../../../hardwareintegration/compositor/hardwarelayer/vsp2/vsp2hardwarelayerintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../../hardwareintegration/compositor/hardwarelayer/vsp2
+ LIBRARIES
+ PkgConfig::Waylandkms
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+#### Keys ignored in scope 1:.:.:vsp2.pro:<TRUE>:
+# OTHER_FILES = "vsp2.json"
diff --git a/src/plugins/hardwareintegration/compositor/libhybris-egl-server/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/libhybris-egl-server/CMakeLists.txt
new file mode 100644
index 000000000..f0e6bec6c
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/libhybris-egl-server/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from libhybris-egl-server.pro.
+
+#####################################################################
+## LibHybrisEglServerBufferIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(LibHybrisEglServerBufferIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-libybris-egl-server.json
+ TYPE wayland-graphics-integration-server
+ SOURCES
+ ../../../../hardwareintegration/compositor/libhybris-egl-server/libhybriseglserverbufferintegration.cpp ../../../../hardwareintegration/compositor/libhybris-egl-server/libhybriseglserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/libhybris-egl-server
+ LIBRARIES
+ EGL::EGL
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+qt6_generate_wayland_protocol_server_sources(LibHybrisEglServerBufferIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/libhybris-egl-server/../../../extensions/libhybris-egl-server-buffer.xml
+)
+
+#### Keys ignored in scope 1:.:.:libhybris-egl-server.pro:<TRUE>:
+# OTHER_FILES = "libhybris-egl-server.json"
diff --git a/src/plugins/hardwareintegration/compositor/linux-dmabuf-unstable-v1/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/linux-dmabuf-unstable-v1/CMakeLists.txt
new file mode 100644
index 000000000..35ffd7dcc
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/linux-dmabuf-unstable-v1/CMakeLists.txt
@@ -0,0 +1,34 @@
+# Generated from linux-dmabuf-unstable-v1.pro.
+
+#####################################################################
+## QWaylandDmabufClientBufferIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandDmabufClientBufferIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-linux-dmabuf-unstable-v1
+ TYPE wayland-graphics-integration-server
+ SOURCES
+ ../../../../hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.cpp ../../../../hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h
+ ../../../../hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabufclientbufferintegration.cpp ../../../../hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabufclientbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/linux-dmabuf-unstable-v1
+ LIBRARIES
+ EGL::EGL
+ Libdrm::Libdrm
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::EglSupportPrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+qt6_generate_wayland_protocol_server_sources(QWaylandDmabufClientBufferIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/linux-dmabuf-unstable-v1/../../../3rdparty/protocol/linux-dmabuf-unstable-v1.xml
+)
+
+#### Keys ignored in scope 1:.:.:linux-dmabuf-unstable-v1.pro:<TRUE>:
+# OTHER_FILES = "linux-dmabuf.json"
diff --git a/src/plugins/hardwareintegration/compositor/shm-emulation-server/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/shm-emulation-server/CMakeLists.txt
new file mode 100644
index 000000000..707a53809
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/shm-emulation-server/CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from shm-emulation-server.pro.
+
+#####################################################################
+## ShmServerBufferIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(ShmServerBufferIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-shm-emulation-server
+ TYPE wayland-graphics-integration-server
+ SOURCES
+ ../../../../hardwareintegration/compositor/shm-emulation-server/shmserverbufferintegration.cpp ../../../../hardwareintegration/compositor/shm-emulation-server/shmserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/shm-emulation-server
+ LIBRARIES
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+qt6_generate_wayland_protocol_server_sources(ShmServerBufferIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/shm-emulation-server/../../../extensions/shm-emulation-server-buffer.xml
+)
+
+#### Keys ignored in scope 1:.:.:shm-emulation-server.pro:<TRUE>:
+# OTHER_FILES = "shm-emulation-server.json"
diff --git a/src/plugins/hardwareintegration/compositor/vulkan-server/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/vulkan-server/CMakeLists.txt
new file mode 100644
index 000000000..472728a64
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/vulkan-server/CMakeLists.txt
@@ -0,0 +1,33 @@
+# Generated from vulkan-server.pro.
+
+#####################################################################
+## VulkanServerBufferIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(VulkanServerBufferIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-vulkan-server
+ TYPE wayland-graphics-integration-server
+ SOURCES
+ ../../../../hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.cpp ../../../../hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.h
+ ../../../../hardwareintegration/compositor/vulkan-server/vulkanwrapper.cpp ../../../../hardwareintegration/compositor/vulkan-server/vulkanwrapper.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/vulkan-server
+ ../../../../hardwareintegration/compositor/vulkan-server/../../../3rdparty/util
+ LIBRARIES
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::VulkanSupportPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+qt6_generate_wayland_protocol_server_sources(VulkanServerBufferIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/vulkan-server/../../../extensions/qt-vulkan-server-buffer-unstable-v1.xml
+)
+
+#### Keys ignored in scope 1:.:.:vulkan-server.pro:<TRUE>:
+# OTHER_FILES = "vulkan-server.json"
diff --git a/src/plugins/hardwareintegration/compositor/wayland-egl/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/wayland-egl/CMakeLists.txt
new file mode 100644
index 000000000..ea307288d
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/wayland-egl/CMakeLists.txt
@@ -0,0 +1,28 @@
+# Generated from wayland-egl.pro.
+
+#####################################################################
+## QWaylandEglClientBufferIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandEglClientBufferIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-wayland-egl
+ TYPE wayland-graphics-integration-server
+ SOURCES
+ ../../../../hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp ../../../../hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/wayland-egl
+ LIBRARIES
+ EGL::EGL
+ Wayland::Egl
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::EglSupportPrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+#### Keys ignored in scope 1:.:.:wayland-egl.pro:<TRUE>:
+# OTHER_FILES = "wayland-egl.json"
diff --git a/src/plugins/hardwareintegration/compositor/wayland-eglstream-controller/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/wayland-eglstream-controller/CMakeLists.txt
new file mode 100644
index 000000000..10932f15a
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/wayland-eglstream-controller/CMakeLists.txt
@@ -0,0 +1,34 @@
+# Generated from wayland-eglstream-controller.pro.
+
+#####################################################################
+## QWaylandEglStreamBufferIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandEglStreamBufferIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-wayland-eglstream-controller
+ TYPE wayland-graphics-integration-server
+ SOURCES
+ ../../../../hardwareintegration/compositor/wayland-eglstream-controller/waylandeglstreamcontroller.cpp ../../../../hardwareintegration/compositor/wayland-eglstream-controller/waylandeglstreamcontroller.h
+ ../../../../hardwareintegration/compositor/wayland-eglstream-controller/waylandeglstreamintegration.cpp ../../../../hardwareintegration/compositor/wayland-eglstream-controller/waylandeglstreamintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/wayland-eglstream-controller
+ LIBRARIES
+ EGL::EGL
+ Wayland::Egl
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::EglSupportPrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+qt6_generate_wayland_protocol_server_sources(QWaylandEglStreamBufferIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/wayland-eglstream-controller/../../../3rdparty/protocol/wl-eglstream-controller.xml
+)
+
+#### Keys ignored in scope 1:.:.:wayland-eglstream-controller.pro:<TRUE>:
+# OTHER_FILES = "wayland-eglstream-controller.json"
diff --git a/src/plugins/hardwareintegration/compositor/xcomposite-egl/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/xcomposite-egl/CMakeLists.txt
new file mode 100644
index 000000000..c8beed397
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/xcomposite-egl/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Generated from xcomposite-egl.pro.
+
+#####################################################################
+## QWaylandXCompositeEglClientBufferIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandXCompositeEglClientBufferIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-xcomposite-egl
+ TYPE wayland-graphics-integration-server
+ SOURCES
+ ../../../../hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.cpp ../../../../hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.h
+ ../../../../hardwareintegration/compositor/xcomposite_share/xcompositebuffer.cpp ../../../../hardwareintegration/compositor/xcomposite_share/xcompositebuffer.h
+ ../../../../hardwareintegration/compositor/xcomposite_share/xcompositehandler.cpp ../../../../hardwareintegration/compositor/xcomposite_share/xcompositehandler.h
+ ../../../../hardwareintegration/compositor/xcomposite_share/xlibinclude.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/xcomposite-egl
+ ../../../../hardwareintegration/compositor/xcomposite_share
+ LIBRARIES
+ EGL::EGL
+ Wayland::Server
+ X11::X11
+ PUBLIC_LIBRARIES
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+qt6_generate_wayland_protocol_server_sources(QWaylandXCompositeEglClientBufferIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/xcomposite_share/../../../3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/xcomposite_share/../../../extensions/xcomposite.xml
+)
+
+#### Keys ignored in scope 1:.:.:xcomposite-egl.pro:<TRUE>:
+# OTHER_FILES = "xcomposite-egl.json"
diff --git a/src/plugins/hardwareintegration/compositor/xcomposite-glx/.prev_CMakeLists.txt b/src/plugins/hardwareintegration/compositor/xcomposite-glx/.prev_CMakeLists.txt
new file mode 100644
index 000000000..0c448debb
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/xcomposite-glx/.prev_CMakeLists.txt
@@ -0,0 +1,39 @@
+# Generated from xcomposite-glx.pro.
+
+#####################################################################
+## QWaylandXCompositeGlxClientBufferIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandXCompositeGlxClientBufferIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-xcomposite-glx
+ TYPE wayland-graphics-integration-server
+ SOURCES
+ ../../../../hardwareintegration/compositor/xcomposite-glx/xcompositeglxintegration.cpp ../../../../hardwareintegration/compositor/xcomposite-glx/xcompositeglxintegration.h
+ ../../../../hardwareintegration/compositor/xcomposite_share/xcompositebuffer.cpp ../../../../hardwareintegration/compositor/xcomposite_share/xcompositebuffer.h
+ ../../../../hardwareintegration/compositor/xcomposite_share/xcompositehandler.cpp ../../../../hardwareintegration/compositor/xcomposite_share/xcompositehandler.h
+ ../../../../hardwareintegration/compositor/xcomposite_share/xlibinclude.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/xcomposite-glx
+ ../../../../hardwareintegration/compositor/xcomposite_share
+ LIBRARIES
+ Wayland::Server
+ X11::X11
+ PUBLIC_LIBRARIES
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+qt6_generate_wayland_protocol_server_sources(QWaylandXCompositeGlxClientBufferIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/xcomposite_share/../../../3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/xcomposite_share/../../../extensions/xcomposite.xml
+)
+
+#### Keys ignored in scope 1:.:.:xcomposite-glx.pro:<TRUE>:
+# OTHER_FILES = "xcomposite-glx.json"
diff --git a/src/plugins/hardwareintegration/compositor/xcomposite-glx/CMakeLists.txt b/src/plugins/hardwareintegration/compositor/xcomposite-glx/CMakeLists.txt
new file mode 100644
index 000000000..0a2ef9831
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/xcomposite-glx/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Generated from xcomposite-glx.pro.
+
+#####################################################################
+## QWaylandXCompositeGlxClientBufferIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandXCompositeGlxClientBufferIntegrationPlugin
+ OUTPUT_NAME qt-wayland-compositor-xcomposite-glx
+ TYPE wayland-graphics-integration-server
+ SOURCES
+ ../../../../hardwareintegration/compositor/xcomposite-glx/xcompositeglxintegration.cpp ../../../../hardwareintegration/compositor/xcomposite-glx/xcompositeglxintegration.h
+ ../../../../hardwareintegration/compositor/xcomposite_share/xcompositebuffer.cpp ../../../../hardwareintegration/compositor/xcomposite_share/xcompositebuffer.h
+ ../../../../hardwareintegration/compositor/xcomposite_share/xcompositehandler.cpp ../../../../hardwareintegration/compositor/xcomposite_share/xcompositehandler.h
+ ../../../../hardwareintegration/compositor/xcomposite_share/xlibinclude.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/xcomposite-glx
+ ../../../../hardwareintegration/compositor/xcomposite_share
+ LIBRARIES
+ Qt::GlxSupportPrivate # special case
+ Wayland::Server
+ X11::X11
+ PUBLIC_LIBRARIES
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+)
+
+qt6_generate_wayland_protocol_server_sources(QWaylandXCompositeGlxClientBufferIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/xcomposite_share/../../../3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../hardwareintegration/compositor/xcomposite_share/../../../extensions/xcomposite.xml
+)
+
+#### Keys ignored in scope 1:.:.:xcomposite-glx.pro:<TRUE>:
+# OTHER_FILES = "xcomposite-glx.json"
diff --git a/src/plugins/platforms/CMakeLists.txt b/src/plugins/platforms/CMakeLists.txt
new file mode 100644
index 000000000..68a49e4c7
--- /dev/null
+++ b/src/plugins/platforms/CMakeLists.txt
@@ -0,0 +1,15 @@
+# Generated from platforms.pro.
+
+add_subdirectory(qwayland-generic)
+if(QT_FEATURE_wayland_egl)
+ add_subdirectory(qwayland-egl)
+endif()
+if(QT_FEATURE_wayland_brcm)
+ add_subdirectory(qwayland-brcm-egl)
+endif()
+if(QT_FEATURE_xcomposite_egl)
+ add_subdirectory(qwayland-xcomposite-egl)
+endif()
+if(QT_FEATURE_xcomposite_glx)
+ add_subdirectory(qwayland-xcomposite-glx)
+endif()
diff --git a/src/plugins/platforms/qwayland-brcm-egl/CMakeLists.txt b/src/plugins/platforms/qwayland-brcm-egl/CMakeLists.txt
new file mode 100644
index 000000000..554f24ba7
--- /dev/null
+++ b/src/plugins/platforms/qwayland-brcm-egl/CMakeLists.txt
@@ -0,0 +1,33 @@
+# Generated from qwayland-brcm-egl.pro.
+
+#####################################################################
+## QWaylandBrcmEglPlatformIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandBrcmEglPlatformIntegrationPlugin
+ OUTPUT_NAME qwayland-brcm-egl
+ TYPE platforms
+ SOURCES
+ ../../../hardwareintegration/client/brcm-egl/qwaylandbrcmeglintegration.cpp ../../../hardwareintegration/client/brcm-egl/qwaylandbrcmeglintegration.h
+ ../../../hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp ../../../hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.h
+ ../../../hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.cpp ../../../hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../hardwareintegration/client/brcm-egl
+ PUBLIC_LIBRARIES
+ ${CMAKE_DL_LIBS}
+ EGL::EGL
+ Qt::Core
+ Qt::EglSupportPrivate
+ Qt::Gui
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(QWaylandBrcmEglPlatformIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../hardwareintegration/client/brcm-egl/../../../extensions/brcm.xml
+)
+
+#### Keys ignored in scope 1:.:.:qwayland-brcm-egl.pro:<TRUE>:
+# OTHER_FILES = "qwayland-brcm-egl.json"
diff --git a/src/plugins/platforms/qwayland-egl/CMakeLists.txt b/src/plugins/platforms/qwayland-egl/CMakeLists.txt
new file mode 100644
index 000000000..5a4e3626b
--- /dev/null
+++ b/src/plugins/platforms/qwayland-egl/CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from qwayland-egl.pro.
+
+#####################################################################
+## QWaylandEglPlatformIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandEglPlatformIntegrationPlugin
+ OUTPUT_NAME qwayland-egl
+ TYPE platforms
+ SOURCES
+ ../../../hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.cpp ../../../hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.h
+ ../../../hardwareintegration/client/wayland-egl/qwaylandeglinclude.h
+ ../../../hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp ../../../hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
+ ../../../hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp ../../../hardwareintegration/client/wayland-egl/qwaylandglcontext.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../hardwareintegration/client/wayland-egl
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ Qt::Core
+ Qt::EglSupportPrivate
+ Qt::Gui
+ Qt::OpenGLPrivate
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ Wayland::Egl
+)
+
+#### Keys ignored in scope 1:.:.:qwayland-egl.pro:<TRUE>:
+# OTHER_FILES = "qwayland-egl.json"
diff --git a/src/plugins/platforms/qwayland-generic/.prev_CMakeLists.txt b/src/plugins/platforms/qwayland-generic/.prev_CMakeLists.txt
new file mode 100644
index 000000000..a6d932cd7
--- /dev/null
+++ b/src/plugins/platforms/qwayland-generic/.prev_CMakeLists.txt
@@ -0,0 +1,19 @@
+# Generated from qwayland-generic.pro.
+
+#####################################################################
+## QWaylandIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandIntegrationPlugin
+ OUTPUT_NAME qwayland-generic
+ TYPE platforms
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClientPrivate
+)
+
+#### Keys ignored in scope 1:.:.:qwayland-generic.pro:<TRUE>:
+# OTHER_FILES = "qwayland-generic.json"
diff --git a/src/plugins/platforms/qwayland-generic/CMakeLists.txt b/src/plugins/platforms/qwayland-generic/CMakeLists.txt
new file mode 100644
index 000000000..342e71189
--- /dev/null
+++ b/src/plugins/platforms/qwayland-generic/CMakeLists.txt
@@ -0,0 +1,20 @@
+# Generated from qwayland-generic.pro.
+
+#####################################################################
+## QWaylandIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandIntegrationPlugin
+ OUTPUT_NAME qwayland-generic
+ TYPE platforms
+ DEFAULT_IF ${QT_QPA_DEFAULT_PLATFORM} MATCHES wayland # special case
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClientPrivate
+)
+
+#### Keys ignored in scope 1:.:.:qwayland-generic.pro:<TRUE>:
+# OTHER_FILES = "qwayland-generic.json"
diff --git a/src/plugins/platforms/qwayland-xcomposite-egl/CMakeLists.txt b/src/plugins/platforms/qwayland-xcomposite-egl/CMakeLists.txt
new file mode 100644
index 000000000..4b84b449d
--- /dev/null
+++ b/src/plugins/platforms/qwayland-xcomposite-egl/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from qwayland-xcomposite-egl.pro.
+
+#####################################################################
+## QWaylandXCompositeEglPlatformIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandXCompositeEglPlatformIntegrationPlugin
+ OUTPUT_NAME qwayland-xcomposite-egl
+ TYPE platforms
+ SOURCES
+ ../../../hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglclientbufferintegration.cpp ../../../hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglclientbufferintegration.h
+ ../../../hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglcontext.cpp ../../../hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglcontext.h
+ ../../../hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp ../../../hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.h
+ ../../../hardwareintegration/client/xcomposite_share/qwaylandxcompositebuffer.cpp ../../../hardwareintegration/client/xcomposite_share/qwaylandxcompositebuffer.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../hardwareintegration/client/xcomposite-egl
+ ../../../hardwareintegration/client/xcomposite_share
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::EglSupportPrivate
+ Qt::Gui
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ X11::X11
+)
+
+qt6_generate_wayland_protocol_client_sources(QWaylandXCompositeEglPlatformIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../hardwareintegration/client/xcomposite_share/../../../extensions/xcomposite.xml
+)
+
+#### Keys ignored in scope 1:.:.:qwayland-xcomposite-egl.pro:<TRUE>:
+# OTHER_FILES = "qwayland-xcomposite-egl.json"
diff --git a/src/plugins/platforms/qwayland-xcomposite-glx/CMakeLists.txt b/src/plugins/platforms/qwayland-xcomposite-glx/CMakeLists.txt
new file mode 100644
index 000000000..1ff3c5ffc
--- /dev/null
+++ b/src/plugins/platforms/qwayland-xcomposite-glx/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Generated from qwayland-xcomposite-glx.pro.
+
+#####################################################################
+## QWaylandXCompositeGlxPlatformIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandXCompositeGlxPlatformIntegrationPlugin
+ OUTPUT_NAME qwayland-xcomposite-glx
+ TYPE platforms
+ SOURCES
+ ../../../hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxcontext.cpp ../../../hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxcontext.h
+ ../../../hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxintegration.cpp ../../../hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxintegration.h
+ ../../../hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxwindow.cpp ../../../hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxwindow.h
+ ../../../hardwareintegration/client/xcomposite_share/qwaylandxcompositebuffer.cpp ../../../hardwareintegration/client/xcomposite_share/qwaylandxcompositebuffer.h
+ main.cpp
+ qwaylandxcompositeglxplatformintegration.h
+ INCLUDE_DIRECTORIES
+ ../../../hardwareintegration/client/xcomposite-glx
+ ../../../hardwareintegration/client/xcomposite_share
+ PUBLIC_LIBRARIES
+ ${CMAKE_DL_LIBS}
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::GlxSupportPrivate
+ Qt::Gui
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ X11::X11
+)
+
+qt6_generate_wayland_protocol_client_sources(QWaylandXCompositeGlxPlatformIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../hardwareintegration/client/xcomposite_share/../../../extensions/xcomposite.xml
+)
+
+#### Keys ignored in scope 1:.:.:qwayland-xcomposite-glx.pro:<TRUE>:
+# OTHER_FILES = "qwayland-xcomposite-glx.json"
diff --git a/src/plugins/shellintegration/CMakeLists.txt b/src/plugins/shellintegration/CMakeLists.txt
new file mode 100644
index 000000000..03364328c
--- /dev/null
+++ b/src/plugins/shellintegration/CMakeLists.txt
@@ -0,0 +1,20 @@
+# Generated from shellintegration.pro.
+
+if(QT_FEATURE_wayland_client_fullscreen_shell_v1)
+ add_subdirectory(fullscreen-shell-v1)
+endif()
+if(QT_FEATURE_wayland_client_ivi_shell)
+ add_subdirectory(ivi-shell)
+endif()
+if(QT_FEATURE_wayland_client_wl_shell)
+ add_subdirectory(wl-shell)
+endif()
+if(QT_FEATURE_wayland_client_xdg_shell)
+ add_subdirectory(xdg-shell)
+endif()
+if(QT_FEATURE_wayland_client_xdg_shell_v5)
+ add_subdirectory(xdg-shell-v5)
+endif()
+if(QT_FEATURE_wayland_client_xdg_shell_v6)
+ add_subdirectory(xdg-shell-v6)
+endif()
diff --git a/src/plugins/shellintegration/fullscreen-shell-v1/CMakeLists.txt b/src/plugins/shellintegration/fullscreen-shell-v1/CMakeLists.txt
new file mode 100644
index 000000000..9e068dfe2
--- /dev/null
+++ b/src/plugins/shellintegration/fullscreen-shell-v1/CMakeLists.txt
@@ -0,0 +1,28 @@
+# Generated from fullscreen-shell-v1.pro.
+
+#####################################################################
+## QWaylandFullScreenShellV1IntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandFullScreenShellV1IntegrationPlugin
+ OUTPUT_NAME fullscreen-shell-v1
+ TYPE wayland-shell-integration
+ SOURCES
+ main.cpp
+ qwaylandfullscreenshellv1integration.cpp qwaylandfullscreenshellv1integration.h
+ qwaylandfullscreenshellv1surface.cpp qwaylandfullscreenshellv1surface.h
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(QWaylandFullScreenShellV1IntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../3rdparty/protocol/fullscreen-shell-unstable-v1.xml
+)
+
+#### Keys ignored in scope 1:.:.:fullscreen-shell-v1.pro:<TRUE>:
+# OTHER_FILES = "fullscreen-shell-v1.json"
diff --git a/src/plugins/shellintegration/ivi-shell/CMakeLists.txt b/src/plugins/shellintegration/ivi-shell/CMakeLists.txt
new file mode 100644
index 000000000..4fe1016b0
--- /dev/null
+++ b/src/plugins/shellintegration/ivi-shell/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Generated from ivi-shell.pro.
+
+#####################################################################
+## QWaylandIviShellIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandIviShellIntegrationPlugin
+ OUTPUT_NAME ivi-shell
+ TYPE wayland-shell-integration
+ SOURCES
+ main.cpp
+ qwaylandivishellintegration.cpp qwaylandivishellintegration.h
+ qwaylandivisurface.cpp qwaylandivisurface_p.h
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(QWaylandIviShellIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../3rdparty/protocol/ivi-application.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../3rdparty/protocol/ivi-controller.xml
+)
+
+#### Keys ignored in scope 1:.:.:ivi-shell.pro:<TRUE>:
+# OTHER_FILES = "ivi-shell.json"
+
+## Scopes:
+#####################################################################
+
+qt_extend_target(QWaylandIviShellIntegrationPlugin CONDITION QT_FEATURE_xkbcommon
+ PUBLIC_LIBRARIES
+ XKB::XKB
+)
diff --git a/src/plugins/shellintegration/wl-shell/CMakeLists.txt b/src/plugins/shellintegration/wl-shell/CMakeLists.txt
new file mode 100644
index 000000000..496bbe68c
--- /dev/null
+++ b/src/plugins/shellintegration/wl-shell/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from wl-shell.pro.
+
+#####################################################################
+## QWaylandWlShellIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandWlShellIntegrationPlugin
+ OUTPUT_NAME wl-shell
+ TYPE wayland-shell-integration
+ SOURCES
+ main.cpp
+ qwaylandwlshellintegration.cpp qwaylandwlshellintegration_p.h
+ qwaylandwlshellsurface.cpp qwaylandwlshellsurface_p.h
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(QWaylandWlShellIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../3rdparty/protocol/wayland.xml
+)
+
+#### Keys ignored in scope 1:.:.:wl-shell.pro:<TRUE>:
+# OTHER_FILES = "wl-shell.json"
+
+## Scopes:
+#####################################################################
+
+qt_extend_target(QWaylandWlShellIntegrationPlugin CONDITION QT_FEATURE_xkbcommon
+ LIBRARIES
+ XKB::XKB
+)
diff --git a/src/plugins/shellintegration/xdg-shell-v5/CMakeLists.txt b/src/plugins/shellintegration/xdg-shell-v5/CMakeLists.txt
new file mode 100644
index 000000000..fec8b2c89
--- /dev/null
+++ b/src/plugins/shellintegration/xdg-shell-v5/CMakeLists.txt
@@ -0,0 +1,38 @@
+# Generated from xdg-shell-v5.pro.
+
+#####################################################################
+## QWaylandXdgShellV5IntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandXdgShellV5IntegrationPlugin
+ OUTPUT_NAME xdg-shell-v5
+ TYPE wayland-shell-integration
+ SOURCES
+ main.cpp
+ pregenerated/3rdparty/qwayland-xdg-shell-unstable-v5.cpp pregenerated/3rdparty/qwayland-xdg-shell-unstable-v5_p.h
+ pregenerated/3rdparty/wayland-xdg-shell-unstable-v5-client-protocol_p.h
+ pregenerated/3rdparty/wayland-xdg-shell-unstable-v5-protocol.c
+ qwaylandxdgpopupv5.cpp qwaylandxdgpopupv5_p.h
+ qwaylandxdgshellv5.cpp qwaylandxdgshellv5_p.h
+ qwaylandxdgshellv5integration.cpp qwaylandxdgshellv5integration_p.h
+ qwaylandxdgsurfacev5.cpp qwaylandxdgsurfacev5_p.h
+ INCLUDE_DIRECTORIES
+ pregenerated/3rdparty
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+#### Keys ignored in scope 1:.:.:xdg-shell-v5.pro:<TRUE>:
+# OTHER_FILES = "xdg-shell-v5.json"
+
+## Scopes:
+#####################################################################
+
+qt_extend_target(QWaylandXdgShellV5IntegrationPlugin CONDITION QT_FEATURE_xkbcommon
+ PUBLIC_LIBRARIES
+ XKB::XKB
+)
diff --git a/src/plugins/shellintegration/xdg-shell-v6/CMakeLists.txt b/src/plugins/shellintegration/xdg-shell-v6/CMakeLists.txt
new file mode 100644
index 000000000..094610155
--- /dev/null
+++ b/src/plugins/shellintegration/xdg-shell-v6/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from xdg-shell-v6.pro.
+
+#####################################################################
+## QWaylandXdgShellV6IntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandXdgShellV6IntegrationPlugin
+ OUTPUT_NAME xdg-shell-v6
+ TYPE wayland-shell-integration
+ SOURCES
+ main.cpp
+ qwaylandxdgshellv6.cpp qwaylandxdgshellv6_p.h
+ qwaylandxdgshellv6integration.cpp qwaylandxdgshellv6integration_p.h
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(QWaylandXdgShellV6IntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../3rdparty/protocol/xdg-shell-unstable-v6.xml
+)
+
+#### Keys ignored in scope 1:.:.:xdg-shell-v6.pro:<TRUE>:
+# OTHER_FILES = "xdg-shell-v6.json"
+
+## Scopes:
+#####################################################################
+
+qt_extend_target(QWaylandXdgShellV6IntegrationPlugin CONDITION QT_FEATURE_xkbcommon
+ LIBRARIES
+ XKB::XKB
+)
diff --git a/src/plugins/shellintegration/xdg-shell/CMakeLists.txt b/src/plugins/shellintegration/xdg-shell/CMakeLists.txt
new file mode 100644
index 000000000..848a0ec60
--- /dev/null
+++ b/src/plugins/shellintegration/xdg-shell/CMakeLists.txt
@@ -0,0 +1,38 @@
+# Generated from xdg-shell.pro.
+
+#####################################################################
+## QWaylandXdgShellIntegrationPlugin Plugin:
+#####################################################################
+
+qt_add_plugin(QWaylandXdgShellIntegrationPlugin
+ OUTPUT_NAME xdg-shell
+ TYPE wayland-shell-integration
+ SOURCES
+ main.cpp
+ qwaylandxdgdecorationv1.cpp qwaylandxdgdecorationv1_p.h
+ qwaylandxdgshell.cpp qwaylandxdgshell_p.h
+ qwaylandxdgshellintegration.cpp qwaylandxdgshellintegration_p.h
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(QWaylandXdgShellIntegrationPlugin
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../3rdparty/protocol/xdg-decoration-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../3rdparty/protocol/xdg-shell.xml
+)
+
+#### Keys ignored in scope 1:.:.:xdg-shell.pro:<TRUE>:
+# OTHER_FILES = "xdg-shell.json"
+
+## Scopes:
+#####################################################################
+
+qt_extend_target(QWaylandXdgShellIntegrationPlugin CONDITION QT_FEATURE_xkbcommon
+ LIBRARIES
+ XKB::XKB
+)
diff --git a/src/qtwaylandscanner/.prev_CMakeLists.txt b/src/qtwaylandscanner/.prev_CMakeLists.txt
new file mode 100644
index 000000000..bb413544c
--- /dev/null
+++ b/src/qtwaylandscanner/.prev_CMakeLists.txt
@@ -0,0 +1,15 @@
+# Generated from qtwaylandscanner.pro.
+
+#####################################################################
+## qtwaylandscanner Tool:
+#####################################################################
+
+qt_add_tool(qtwaylandscanner
+ SOURCES
+ qtwaylandscanner.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+)
+
+#### Keys ignored in scope 1:.:.:qtwaylandscanner.pro:<TRUE>:
+# _OPTION = "host_build"
diff --git a/src/qtwaylandscanner/CMakeLists.txt b/src/qtwaylandscanner/CMakeLists.txt
new file mode 100644
index 000000000..17254afc3
--- /dev/null
+++ b/src/qtwaylandscanner/CMakeLists.txt
@@ -0,0 +1,22 @@
+# Generated from qtwaylandscanner.pro.
+
+#####################################################################
+## qtwaylandscanner Tool:
+#####################################################################
+
+qt_add_tool(qtwaylandscanner
+ TOOLS_TARGET WaylandScanner # special case
+ SOURCES
+ qtwaylandscanner.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+)
+
+#### Keys ignored in scope 1:.:.:qtwaylandscanner.pro:<TRUE>:
+# _OPTION = "host_build"
+
+# special case begin
+# Abuse the function to make sure the package providing qtwaylandscanner calls
+# find_package(WaylandScanner), aka the non-qt provided package.
+qt_record_extra_package_dependency(qtwaylandscanner WaylandScanner "")
+# special case end
diff --git a/tests/.prev_CMakeLists.txt b/tests/.prev_CMakeLists.txt
new file mode 100644
index 000000000..221413713
--- /dev/null
+++ b/tests/.prev_CMakeLists.txt
@@ -0,0 +1,7 @@
+# Generated from tests.pro.
+
+if(QT_BUILD_STANDALONE_TESTS)
+ # Add qt_find_package calls for extra dependencies that need to be found when building
+ # the standalone tests here.
+endif()
+qt_build_tests()
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 000000000..ce2e25819
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,19 @@
+# Generated from tests.pro.
+
+qt_find_package(Threads REQUIRED) # special case
+if(QT_BUILD_STANDALONE_TESTS)
+ # Add qt_find_package calls for extra dependencies that need to be found when building
+ # the standalone tests here.
+ # special case begin
+ qt_find_package(Qt6 ${PROJECT_VERSION} OPTIONAL_COMPONENTS WaylandCompositor WaylandClient)
+
+ if (NOT Qt6WaylandScannerTools_FOUND)
+ message(WARNING "QtWaylandTests is missing required components, nothing will be built. \
+ Although this could be considered an error, the configuration will still pass as coin (Qt's \
+ continuous integration system) will fail the build if configure fails, but will still try to \
+ configure the module on targets that are missing dependencies.")
+ return()
+ endif()
+ # special case end
+endif()
+qt_build_tests()
diff --git a/tests/auto/.prev_CMakeLists.txt b/tests/auto/.prev_CMakeLists.txt
new file mode 100644
index 000000000..15a50eb6d
--- /dev/null
+++ b/tests/auto/.prev_CMakeLists.txt
@@ -0,0 +1,11 @@
+# Generated from auto.pro.
+
+if(TARGET Qt::WaylandClient)
+ add_subdirectory(client)
+endif()
+if(TARGET Qt::WaylandClient AND TARGET Qt::WaylandCompositor)
+ add_subdirectory(cmake)
+endif()
+if(TARGET Qt::WaylandCompositor)
+ add_subdirectory(compositor)
+endif()
diff --git a/tests/auto/CMakeLists.txt b/tests/auto/CMakeLists.txt
new file mode 100644
index 000000000..763b7cd4d
--- /dev/null
+++ b/tests/auto/CMakeLists.txt
@@ -0,0 +1,11 @@
+# Generated from auto.pro.
+
+if(TARGET Qt::WaylandClient)
+ add_subdirectory(client)
+endif()
+if(TARGET Qt::WaylandClient AND TARGET Qt::WaylandCompositor)
+ #add_subdirectory(cmake) # special case
+endif()
+if(TARGET Qt::WaylandCompositor)
+ add_subdirectory(compositor)
+endif()
diff --git a/tests/auto/client/CMakeLists.txt b/tests/auto/client/CMakeLists.txt
new file mode 100644
index 000000000..5939853cc
--- /dev/null
+++ b/tests/auto/client/CMakeLists.txt
@@ -0,0 +1,21 @@
+# Generated from client.pro.
+
+add_subdirectory(client)
+add_subdirectory(datadevicev1)
+add_subdirectory(fullscreenshellv1)
+add_subdirectory(iviapplication)
+add_subdirectory(nooutput)
+add_subdirectory(output)
+add_subdirectory(primaryselectionv1)
+add_subdirectory(seatv4)
+add_subdirectory(seatv5)
+add_subdirectory(surface)
+add_subdirectory(tabletv2)
+add_subdirectory(wl_connect)
+add_subdirectory(xdgdecorationv1)
+add_subdirectory(xdgoutput)
+add_subdirectory(xdgshell)
+add_subdirectory(xdgshellv6)
+if(QT_FEATURE_im)
+ add_subdirectory(inputcontext)
+endif()
diff --git a/tests/auto/client/client/.prev_CMakeLists.txt b/tests/auto/client/client/.prev_CMakeLists.txt
new file mode 100644
index 000000000..c52ab320b
--- /dev/null
+++ b/tests/auto/client/client/.prev_CMakeLists.txt
@@ -0,0 +1,39 @@
+# Generated from client.pro.
+
+#####################################################################
+## tst_client Test:
+#####################################################################
+
+qt_add_test(tst_client
+ SOURCES
+ ../shared_old/mockcompositor.cpp ../shared_old/mockcompositor.h
+ ../shared_old/mockfullscreenshellv1.cpp ../shared_old/mockfullscreenshellv1.h
+ ../shared_old/mockinput.cpp ../shared_old/mockinput.h
+ ../shared_old/mockiviapplication.cpp ../shared_old/mockiviapplication.h
+ ../shared_old/mockoutput.cpp ../shared_old/mockoutput.h
+ ../shared_old/mocksurface.cpp ../shared_old/mocksurface.h
+ ../shared_old/mockwlshell.cpp ../shared_old/mockwlshell.h
+ ../shared_old/mockxdgshellv6.cpp ../shared_old/mockxdgshellv6.h
+ tst_client.cpp
+ INCLUDE_DIRECTORIES
+ ../shared_old
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_client
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/fullscreen-shell-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/ivi-application.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-shell-unstable-v6.xml
+)
+
+#### Keys ignored in scope 1:.:.:client.pro:<TRUE>:
+# check.commands = "$(TESTRUNNER)" "$${PWD}/run-with-all-shells.sh" "$(TESTARGS)"
diff --git a/tests/auto/client/client/CMakeLists.txt b/tests/auto/client/client/CMakeLists.txt
new file mode 100644
index 000000000..f7e317c77
--- /dev/null
+++ b/tests/auto/client/client/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Generated from client.pro.
+
+#####################################################################
+## tst_client Test:
+#####################################################################
+
+qt_add_test(tst_client
+ SOURCES
+ ../shared_old/mockcompositor.cpp ../shared_old/mockcompositor.h
+ ../shared_old/mockfullscreenshellv1.cpp ../shared_old/mockfullscreenshellv1.h
+ ../shared_old/mockinput.cpp ../shared_old/mockinput.h
+ ../shared_old/mockiviapplication.cpp ../shared_old/mockiviapplication.h
+ ../shared_old/mockoutput.cpp ../shared_old/mockoutput.h
+ ../shared_old/mocksurface.cpp ../shared_old/mocksurface.h
+ ../shared_old/mockwlshell.cpp ../shared_old/mockwlshell.h
+ ../shared_old/mockxdgshellv6.cpp ../shared_old/mockxdgshellv6.h
+ tst_client.cpp
+ INCLUDE_DIRECTORIES
+ ../shared_old
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_client
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/fullscreen-shell-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/ivi-application.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-shell-unstable-v6.xml
+)
+
+#### Keys ignored in scope 1:.:.:client.pro:<TRUE>:
+# check.commands = "$(TESTRUNNER)" "$${PWD}/run-with-all-shells.sh" "$(TESTARGS)"
diff --git a/tests/auto/client/datadevicev1/.prev_CMakeLists.txt b/tests/auto/client/datadevicev1/.prev_CMakeLists.txt
new file mode 100644
index 000000000..97dedb855
--- /dev/null
+++ b/tests/auto/client/datadevicev1/.prev_CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from datadevicev1.pro.
+
+#####################################################################
+## tst_datadevicev1 Test:
+#####################################################################
+
+qt_add_test(tst_datadevicev1
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_datadevicev1.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_datadevicev1
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/datadevicev1/CMakeLists.txt b/tests/auto/client/datadevicev1/CMakeLists.txt
new file mode 100644
index 000000000..e635e33ce
--- /dev/null
+++ b/tests/auto/client/datadevicev1/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from datadevicev1.pro.
+
+#####################################################################
+## tst_datadevicev1 Test:
+#####################################################################
+
+qt_add_test(tst_datadevicev1
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_datadevicev1.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_datadevicev1
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/fullscreenshellv1/.prev_CMakeLists.txt b/tests/auto/client/fullscreenshellv1/.prev_CMakeLists.txt
new file mode 100644
index 000000000..c9e5eae13
--- /dev/null
+++ b/tests/auto/client/fullscreenshellv1/.prev_CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from fullscreenshellv1.pro.
+
+#####################################################################
+## tst_client_fullscreenshellv1 Test:
+#####################################################################
+
+qt_add_test(tst_client_fullscreenshellv1
+ SOURCES
+ ../shared_old/mockcompositor.cpp ../shared_old/mockcompositor.h
+ ../shared_old/mockfullscreenshellv1.cpp ../shared_old/mockfullscreenshellv1.h
+ ../shared_old/mockinput.cpp ../shared_old/mockinput.h
+ ../shared_old/mockiviapplication.cpp ../shared_old/mockiviapplication.h
+ ../shared_old/mockoutput.cpp ../shared_old/mockoutput.h
+ ../shared_old/mocksurface.cpp ../shared_old/mocksurface.h
+ ../shared_old/mockwlshell.cpp ../shared_old/mockwlshell.h
+ ../shared_old/mockxdgshellv6.cpp ../shared_old/mockxdgshellv6.h
+ tst_fullscreenshellv1.cpp
+ INCLUDE_DIRECTORIES
+ ../shared_old
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_client_fullscreenshellv1
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/fullscreen-shell-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/ivi-application.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-shell-unstable-v6.xml
+)
diff --git a/tests/auto/client/fullscreenshellv1/CMakeLists.txt b/tests/auto/client/fullscreenshellv1/CMakeLists.txt
new file mode 100644
index 000000000..73d92ead8
--- /dev/null
+++ b/tests/auto/client/fullscreenshellv1/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Generated from fullscreenshellv1.pro.
+
+#####################################################################
+## tst_client_fullscreenshellv1 Test:
+#####################################################################
+
+qt_add_test(tst_client_fullscreenshellv1
+ SOURCES
+ ../shared_old/mockcompositor.cpp ../shared_old/mockcompositor.h
+ ../shared_old/mockfullscreenshellv1.cpp ../shared_old/mockfullscreenshellv1.h
+ ../shared_old/mockinput.cpp ../shared_old/mockinput.h
+ ../shared_old/mockiviapplication.cpp ../shared_old/mockiviapplication.h
+ ../shared_old/mockoutput.cpp ../shared_old/mockoutput.h
+ ../shared_old/mocksurface.cpp ../shared_old/mocksurface.h
+ ../shared_old/mockwlshell.cpp ../shared_old/mockwlshell.h
+ ../shared_old/mockxdgshellv6.cpp ../shared_old/mockxdgshellv6.h
+ tst_fullscreenshellv1.cpp
+ INCLUDE_DIRECTORIES
+ ../shared_old
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_client_fullscreenshellv1
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/fullscreen-shell-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/ivi-application.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-shell-unstable-v6.xml
+)
diff --git a/tests/auto/client/inputcontext/.prev_CMakeLists.txt b/tests/auto/client/inputcontext/.prev_CMakeLists.txt
new file mode 100644
index 000000000..cf2301e77
--- /dev/null
+++ b/tests/auto/client/inputcontext/.prev_CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from inputcontext.pro.
+
+#####################################################################
+## tst_inputcontext Test:
+#####################################################################
+
+qt_add_test(tst_inputcontext
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_inputcontext.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_inputcontext
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/inputcontext/CMakeLists.txt b/tests/auto/client/inputcontext/CMakeLists.txt
new file mode 100644
index 000000000..f061a7ea2
--- /dev/null
+++ b/tests/auto/client/inputcontext/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from inputcontext.pro.
+
+#####################################################################
+## tst_inputcontext Test:
+#####################################################################
+
+qt_add_test(tst_inputcontext
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_inputcontext.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_inputcontext
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/iviapplication/.prev_CMakeLists.txt b/tests/auto/client/iviapplication/.prev_CMakeLists.txt
new file mode 100644
index 000000000..0453aad81
--- /dev/null
+++ b/tests/auto/client/iviapplication/.prev_CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from iviapplication.pro.
+
+#####################################################################
+## tst_client_iviapplication Test:
+#####################################################################
+
+qt_add_test(tst_client_iviapplication
+ SOURCES
+ ../shared_old/mockcompositor.cpp ../shared_old/mockcompositor.h
+ ../shared_old/mockfullscreenshellv1.cpp ../shared_old/mockfullscreenshellv1.h
+ ../shared_old/mockinput.cpp ../shared_old/mockinput.h
+ ../shared_old/mockiviapplication.cpp ../shared_old/mockiviapplication.h
+ ../shared_old/mockoutput.cpp ../shared_old/mockoutput.h
+ ../shared_old/mocksurface.cpp ../shared_old/mocksurface.h
+ ../shared_old/mockwlshell.cpp ../shared_old/mockwlshell.h
+ ../shared_old/mockxdgshellv6.cpp ../shared_old/mockxdgshellv6.h
+ tst_iviapplication.cpp
+ INCLUDE_DIRECTORIES
+ ../shared_old
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_client_iviapplication
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/fullscreen-shell-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/ivi-application.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-shell-unstable-v6.xml
+)
diff --git a/tests/auto/client/iviapplication/CMakeLists.txt b/tests/auto/client/iviapplication/CMakeLists.txt
new file mode 100644
index 000000000..7e3bfd73a
--- /dev/null
+++ b/tests/auto/client/iviapplication/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Generated from iviapplication.pro.
+
+#####################################################################
+## tst_client_iviapplication Test:
+#####################################################################
+
+qt_add_test(tst_client_iviapplication
+ SOURCES
+ ../shared_old/mockcompositor.cpp ../shared_old/mockcompositor.h
+ ../shared_old/mockfullscreenshellv1.cpp ../shared_old/mockfullscreenshellv1.h
+ ../shared_old/mockinput.cpp ../shared_old/mockinput.h
+ ../shared_old/mockiviapplication.cpp ../shared_old/mockiviapplication.h
+ ../shared_old/mockoutput.cpp ../shared_old/mockoutput.h
+ ../shared_old/mocksurface.cpp ../shared_old/mocksurface.h
+ ../shared_old/mockwlshell.cpp ../shared_old/mockwlshell.h
+ ../shared_old/mockxdgshellv6.cpp ../shared_old/mockxdgshellv6.h
+ tst_iviapplication.cpp
+ INCLUDE_DIRECTORIES
+ ../shared_old
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_client_iviapplication
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/fullscreen-shell-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/ivi-application.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-shell-unstable-v6.xml
+)
diff --git a/tests/auto/client/nooutput/.prev_CMakeLists.txt b/tests/auto/client/nooutput/.prev_CMakeLists.txt
new file mode 100644
index 000000000..3f09f584c
--- /dev/null
+++ b/tests/auto/client/nooutput/.prev_CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from nooutput.pro.
+
+#####################################################################
+## tst_nooutput Test:
+#####################################################################
+
+qt_add_test(tst_nooutput
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_nooutput.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_nooutput
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/nooutput/CMakeLists.txt b/tests/auto/client/nooutput/CMakeLists.txt
new file mode 100644
index 000000000..e5110c0c9
--- /dev/null
+++ b/tests/auto/client/nooutput/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from nooutput.pro.
+
+#####################################################################
+## tst_nooutput Test:
+#####################################################################
+
+qt_add_test(tst_nooutput
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_nooutput.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_nooutput
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/output/.prev_CMakeLists.txt b/tests/auto/client/output/.prev_CMakeLists.txt
new file mode 100644
index 000000000..09ca5d6d4
--- /dev/null
+++ b/tests/auto/client/output/.prev_CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from output.pro.
+
+#####################################################################
+## tst_output Test:
+#####################################################################
+
+qt_add_test(tst_output
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_output.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_output
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/output/CMakeLists.txt b/tests/auto/client/output/CMakeLists.txt
new file mode 100644
index 000000000..5d2dfbf9d
--- /dev/null
+++ b/tests/auto/client/output/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from output.pro.
+
+#####################################################################
+## tst_output Test:
+#####################################################################
+
+qt_add_test(tst_output
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_output.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_output
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/primaryselectionv1/.prev_CMakeLists.txt b/tests/auto/client/primaryselectionv1/.prev_CMakeLists.txt
new file mode 100644
index 000000000..f86e81e12
--- /dev/null
+++ b/tests/auto/client/primaryselectionv1/.prev_CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from primaryselectionv1.pro.
+
+#####################################################################
+## tst_primaryselectionv1 Test:
+#####################################################################
+
+qt_add_test(tst_primaryselectionv1
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_primaryselectionv1.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_primaryselectionv1
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/wp-primary-selection-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/primaryselectionv1/CMakeLists.txt b/tests/auto/client/primaryselectionv1/CMakeLists.txt
new file mode 100644
index 000000000..d101c8b3d
--- /dev/null
+++ b/tests/auto/client/primaryselectionv1/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Generated from primaryselectionv1.pro.
+
+#####################################################################
+## tst_primaryselectionv1 Test:
+#####################################################################
+
+qt_add_test(tst_primaryselectionv1
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_primaryselectionv1.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_primaryselectionv1
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/wp-primary-selection-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/seatv4/.prev_CMakeLists.txt b/tests/auto/client/seatv4/.prev_CMakeLists.txt
new file mode 100644
index 000000000..9e0e4c37e
--- /dev/null
+++ b/tests/auto/client/seatv4/.prev_CMakeLists.txt
@@ -0,0 +1,39 @@
+# Generated from seatv4.pro.
+
+#####################################################################
+## tst_seatv4 Test:
+#####################################################################
+
+qt_add_test(tst_seatv4
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_seatv4.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_seatv4
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
+
+## Scopes:
+#####################################################################
+
+qt_extend_target(tst_seatv4 CONDITION QT_FEATURE_cursor
+ PUBLIC_LIBRARIES
+ Qt::GuiPrivate
+ Wayland::Cursor
+)
diff --git a/tests/auto/client/seatv4/CMakeLists.txt b/tests/auto/client/seatv4/CMakeLists.txt
new file mode 100644
index 000000000..36b0c8471
--- /dev/null
+++ b/tests/auto/client/seatv4/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Generated from seatv4.pro.
+
+#####################################################################
+## tst_seatv4 Test:
+#####################################################################
+
+qt_add_test(tst_seatv4
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_seatv4.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_seatv4
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
+
+## Scopes:
+#####################################################################
+
+qt_extend_target(tst_seatv4 CONDITION QT_FEATURE_cursor
+ PUBLIC_LIBRARIES
+ Qt::GuiPrivate
+ Wayland::Cursor
+)
diff --git a/tests/auto/client/seatv5/.prev_CMakeLists.txt b/tests/auto/client/seatv5/.prev_CMakeLists.txt
new file mode 100644
index 000000000..11d615fb2
--- /dev/null
+++ b/tests/auto/client/seatv5/.prev_CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from seatv5.pro.
+
+#####################################################################
+## tst_seatv5 Test:
+#####################################################################
+
+qt_add_test(tst_seatv5
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_seatv5.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_seatv5
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/seatv5/CMakeLists.txt b/tests/auto/client/seatv5/CMakeLists.txt
new file mode 100644
index 000000000..fefdcf8db
--- /dev/null
+++ b/tests/auto/client/seatv5/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from seatv5.pro.
+
+#####################################################################
+## tst_seatv5 Test:
+#####################################################################
+
+qt_add_test(tst_seatv5
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_seatv5.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_seatv5
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/surface/.prev_CMakeLists.txt b/tests/auto/client/surface/.prev_CMakeLists.txt
new file mode 100644
index 000000000..43d6ec34e
--- /dev/null
+++ b/tests/auto/client/surface/.prev_CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from surface.pro.
+
+#####################################################################
+## tst_surface Test:
+#####################################################################
+
+qt_add_test(tst_surface
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_surface.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_surface
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/surface/CMakeLists.txt b/tests/auto/client/surface/CMakeLists.txt
new file mode 100644
index 000000000..a1545115e
--- /dev/null
+++ b/tests/auto/client/surface/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from surface.pro.
+
+#####################################################################
+## tst_surface Test:
+#####################################################################
+
+qt_add_test(tst_surface
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_surface.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_surface
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/tabletv2/.prev_CMakeLists.txt b/tests/auto/client/tabletv2/.prev_CMakeLists.txt
new file mode 100644
index 000000000..e7fc3f60f
--- /dev/null
+++ b/tests/auto/client/tabletv2/.prev_CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from tabletv2.pro.
+
+#####################################################################
+## tst_tabletv2 Test:
+#####################################################################
+
+qt_add_test(tst_tabletv2
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_tabletv2.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_tabletv2
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/tablet-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/tabletv2/CMakeLists.txt b/tests/auto/client/tabletv2/CMakeLists.txt
new file mode 100644
index 000000000..f5a12c554
--- /dev/null
+++ b/tests/auto/client/tabletv2/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Generated from tabletv2.pro.
+
+#####################################################################
+## tst_tabletv2 Test:
+#####################################################################
+
+qt_add_test(tst_tabletv2
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_tabletv2.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_tabletv2
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/tablet-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/wl_connect/CMakeLists.txt b/tests/auto/client/wl_connect/CMakeLists.txt
new file mode 100644
index 000000000..5a01bedd0
--- /dev/null
+++ b/tests/auto/client/wl_connect/CMakeLists.txt
@@ -0,0 +1,13 @@
+# Generated from wl_connect.pro.
+
+#####################################################################
+## tst_wlconnect Test:
+#####################################################################
+
+qt_add_test(tst_wlconnect
+ SOURCES
+ tst_wlconnect.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::GuiPrivate
+)
diff --git a/tests/auto/client/xdgdecorationv1/.prev_CMakeLists.txt b/tests/auto/client/xdgdecorationv1/.prev_CMakeLists.txt
new file mode 100644
index 000000000..9311070a8
--- /dev/null
+++ b/tests/auto/client/xdgdecorationv1/.prev_CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from xdgdecorationv1.pro.
+
+#####################################################################
+## tst_xdgdecorationv1 Test:
+#####################################################################
+
+qt_add_test(tst_xdgdecorationv1
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_xdgdecorationv1.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_xdgdecorationv1
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-decoration-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/xdgdecorationv1/CMakeLists.txt b/tests/auto/client/xdgdecorationv1/CMakeLists.txt
new file mode 100644
index 000000000..de067a135
--- /dev/null
+++ b/tests/auto/client/xdgdecorationv1/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Generated from xdgdecorationv1.pro.
+
+#####################################################################
+## tst_xdgdecorationv1 Test:
+#####################################################################
+
+qt_add_test(tst_xdgdecorationv1
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_xdgdecorationv1.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_xdgdecorationv1
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-decoration-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/xdgoutput/.prev_CMakeLists.txt b/tests/auto/client/xdgoutput/.prev_CMakeLists.txt
new file mode 100644
index 000000000..505c7c050
--- /dev/null
+++ b/tests/auto/client/xdgoutput/.prev_CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from xdgoutput.pro.
+
+#####################################################################
+## tst_xdgoutput Test:
+#####################################################################
+
+qt_add_test(tst_xdgoutput
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_xdgoutput.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_xdgoutput
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-output-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/xdgoutput/CMakeLists.txt b/tests/auto/client/xdgoutput/CMakeLists.txt
new file mode 100644
index 000000000..e0a4b756e
--- /dev/null
+++ b/tests/auto/client/xdgoutput/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Generated from xdgoutput.pro.
+
+#####################################################################
+## tst_xdgoutput Test:
+#####################################################################
+
+qt_add_test(tst_xdgoutput
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_xdgoutput.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_xdgoutput
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-output-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/xdgshell/.prev_CMakeLists.txt b/tests/auto/client/xdgshell/.prev_CMakeLists.txt
new file mode 100644
index 000000000..65f762107
--- /dev/null
+++ b/tests/auto/client/xdgshell/.prev_CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from xdgshell.pro.
+
+#####################################################################
+## tst_xdgshell Test:
+#####################################################################
+
+qt_add_test(tst_xdgshell
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_xdgshell.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_xdgshell
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/xdgshell/CMakeLists.txt b/tests/auto/client/xdgshell/CMakeLists.txt
new file mode 100644
index 000000000..cab6c8825
--- /dev/null
+++ b/tests/auto/client/xdgshell/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from xdgshell.pro.
+
+#####################################################################
+## tst_xdgshell Test:
+#####################################################################
+
+qt_add_test(tst_xdgshell
+ SOURCES
+ ../shared/corecompositor.cpp ../shared/corecompositor.h
+ ../shared/coreprotocol.cpp ../shared/coreprotocol.h
+ ../shared/datadevice.cpp ../shared/datadevice.h
+ ../shared/mockcompositor.cpp ../shared/mockcompositor.h
+ ../shared/textinput.cpp ../shared/textinput.h
+ ../shared/xdgshell.cpp ../shared/xdgshell.h
+ tst_xdgshell.cpp
+ INCLUDE_DIRECTORIES
+ ../shared
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_xdgshell
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/text-input-unstable-v2.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../shared/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
diff --git a/tests/auto/client/xdgshellv6/.prev_CMakeLists.txt b/tests/auto/client/xdgshellv6/.prev_CMakeLists.txt
new file mode 100644
index 000000000..8fb87235b
--- /dev/null
+++ b/tests/auto/client/xdgshellv6/.prev_CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from xdgshellv6.pro.
+
+#####################################################################
+## tst_client_xdgshellv6 Test:
+#####################################################################
+
+qt_add_test(tst_client_xdgshellv6
+ SOURCES
+ ../shared_old/mockcompositor.cpp ../shared_old/mockcompositor.h
+ ../shared_old/mockfullscreenshellv1.cpp ../shared_old/mockfullscreenshellv1.h
+ ../shared_old/mockinput.cpp ../shared_old/mockinput.h
+ ../shared_old/mockiviapplication.cpp ../shared_old/mockiviapplication.h
+ ../shared_old/mockoutput.cpp ../shared_old/mockoutput.h
+ ../shared_old/mocksurface.cpp ../shared_old/mocksurface.h
+ ../shared_old/mockwlshell.cpp ../shared_old/mockwlshell.h
+ ../shared_old/mockxdgshellv6.cpp ../shared_old/mockxdgshellv6.h
+ tst_xdgshellv6.cpp
+ INCLUDE_DIRECTORIES
+ ../shared_old
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_client_xdgshellv6
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/fullscreen-shell-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/ivi-application.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-shell-unstable-v6.xml
+)
diff --git a/tests/auto/client/xdgshellv6/CMakeLists.txt b/tests/auto/client/xdgshellv6/CMakeLists.txt
new file mode 100644
index 000000000..03acb4815
--- /dev/null
+++ b/tests/auto/client/xdgshellv6/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Generated from xdgshellv6.pro.
+
+#####################################################################
+## tst_client_xdgshellv6 Test:
+#####################################################################
+
+qt_add_test(tst_client_xdgshellv6
+ SOURCES
+ ../shared_old/mockcompositor.cpp ../shared_old/mockcompositor.h
+ ../shared_old/mockfullscreenshellv1.cpp ../shared_old/mockfullscreenshellv1.h
+ ../shared_old/mockinput.cpp ../shared_old/mockinput.h
+ ../shared_old/mockiviapplication.cpp ../shared_old/mockiviapplication.h
+ ../shared_old/mockoutput.cpp ../shared_old/mockoutput.h
+ ../shared_old/mocksurface.cpp ../shared_old/mocksurface.h
+ ../shared_old/mockwlshell.cpp ../shared_old/mockwlshell.h
+ ../shared_old/mockxdgshellv6.cpp ../shared_old/mockxdgshellv6.h
+ tst_xdgshellv6.cpp
+ INCLUDE_DIRECTORIES
+ ../shared_old
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::OpenGL
+ Qt::WaylandClientPrivate
+ Wayland::Client
+ Wayland::Server
+ Threads::Threads # special case
+)
+
+qt6_generate_wayland_protocol_server_sources(tst_client_xdgshellv6
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/fullscreen-shell-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/ivi-application.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-shell-unstable-v6.xml
+)
diff --git a/tests/auto/compositor/CMakeLists.txt b/tests/auto/compositor/CMakeLists.txt
new file mode 100644
index 000000000..a55266517
--- /dev/null
+++ b/tests/auto/compositor/CMakeLists.txt
@@ -0,0 +1,3 @@
+# Generated from compositor.pro.
+
+add_subdirectory(compositor)
diff --git a/tests/auto/compositor/compositor/CMakeLists.txt b/tests/auto/compositor/compositor/CMakeLists.txt
new file mode 100644
index 000000000..7e27448f2
--- /dev/null
+++ b/tests/auto/compositor/compositor/CMakeLists.txt
@@ -0,0 +1,44 @@
+# Generated from compositor.pro.
+
+#####################################################################
+## tst_compositor Test:
+#####################################################################
+
+qt_add_test(tst_compositor
+ SOURCES
+ mockclient.cpp mockclient.h
+ mockkeyboard.cpp mockkeyboard.h
+ mockpointer.cpp mockpointer.h
+ mockseat.cpp mockseat.h
+ mockxdgoutputv1.cpp mockxdgoutputv1.h
+ testcompositor.cpp testcompositor.h
+ testkeyboardgrabber.cpp testkeyboardgrabber.h
+ testseat.cpp testseat.h
+ tst_compositor.cpp
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::WaylandCompositor
+ Qt::WaylandCompositorPrivate
+ Wayland::Client
+ Wayland::Server
+)
+
+qt6_generate_wayland_protocol_client_sources(tst_compositor
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/idle-inhibit-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/ivi-application.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/viewporter.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/wayland.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-output-unstable-v1.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/3rdparty/protocol/xdg-shell.xml
+)
+
+## Scopes:
+#####################################################################
+
+qt_extend_target(tst_compositor CONDITION QT_FEATURE_xkbcommon
+ PUBLIC_LIBRARIES
+ XKB::XKB
+)
diff --git a/tests/manual/qmlclient/CMakeLists.txt b/tests/manual/qmlclient/CMakeLists.txt
new file mode 100644
index 000000000..5443fcbc1
--- /dev/null
+++ b/tests/manual/qmlclient/CMakeLists.txt
@@ -0,0 +1,33 @@
+# Generated from qmlclient.pro.
+
+#####################################################################
+## qmlclient Binary:
+#####################################################################
+
+qt_add_manual_test(qmlclient
+ GUI
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::Quick
+ Qt::WaylandClient
+)
+
+# Resources:
+set(qml_resource_files
+ "main.qml"
+)
+
+qt_add_resource(qmlclient "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+
+#### Keys ignored in scope 1:.:.:qmlclient.pro:<TRUE>:
+# TEMPLATE = "app"
diff --git a/tests/manual/scaling-compositor/CMakeLists.txt b/tests/manual/scaling-compositor/CMakeLists.txt
new file mode 100644
index 000000000..2446fb7f8
--- /dev/null
+++ b/tests/manual/scaling-compositor/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from scaling-compositor.pro.
+
+#####################################################################
+## scaling-compositor Binary:
+#####################################################################
+
+qt_add_manual_test(scaling-compositor
+ GUI
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Qml
+ Qt::QuickControls2
+)
+
+# Resources:
+set(qml_resource_files
+ "main.qml"
+)
+
+qt_add_resource(scaling-compositor "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+
+#### Keys ignored in scope 1:.:.:scaling-compositor.pro:<TRUE>:
+# TEMPLATE = "app"
diff --git a/tests/manual/subsurface/CMakeLists.txt b/tests/manual/subsurface/CMakeLists.txt
new file mode 100644
index 000000000..fd450f203
--- /dev/null
+++ b/tests/manual/subsurface/CMakeLists.txt
@@ -0,0 +1,35 @@
+# Generated from subsurface.pro.
+
+#####################################################################
+## subsurface Binary:
+#####################################################################
+
+qt_add_manual_test(subsurface
+ GUI
+ SOURCES
+ main.cpp
+ shmwindow.cpp shmwindow.h
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::Quick
+ Qt::WaylandClient
+)
+
+# Resources:
+set(qml_resource_files
+ "child.qml"
+ "main.qml"
+)
+
+qt_add_resource(subsurface "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+
+#### Keys ignored in scope 1:.:.:subsurface.pro:<TRUE>:
+# TEMPLATE = "app"
diff --git a/tests/manual/texture-sharing/cpp-client/CMakeLists.txt b/tests/manual/texture-sharing/cpp-client/CMakeLists.txt
new file mode 100644
index 000000000..03819d3a3
--- /dev/null
+++ b/tests/manual/texture-sharing/cpp-client/CMakeLists.txt
@@ -0,0 +1,27 @@
+# Generated from cpp-client.pro.
+
+#####################################################################
+## cpp-client Binary:
+#####################################################################
+
+qt_add_manual_test(cpp-client
+ GUI
+ SOURCES
+ ../../../../src/imports/texture-sharing/texturesharingextension.cpp ../../../../src/imports/texture-sharing/texturesharingextension.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../src/imports/texture-sharing
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+)
+
+qt6_generate_wayland_protocol_client_sources(cpp-client
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/extensions/qt-texture-sharing-unstable-v1.xml
+)
+
+#### Keys ignored in scope 1:.:.:cpp-client.pro:<TRUE>:
+# INSTALLS = "target"
+# target.path = "$$[QT_INSTALL_EXAMPLES]/wayland/texture-sharing/cpp-client"
diff --git a/tests/manual/wip-cpp-compositor/CMakeLists.txt b/tests/manual/wip-cpp-compositor/CMakeLists.txt
new file mode 100644
index 000000000..eaef05d7c
--- /dev/null
+++ b/tests/manual/wip-cpp-compositor/CMakeLists.txt
@@ -0,0 +1,20 @@
+# Generated from wip-cpp-compositor.pro.
+
+#####################################################################
+## wip-cpp-compositor Binary:
+#####################################################################
+
+qt_add_manual_test(wip-cpp-compositor
+ GUI
+ SOURCES
+ compositor.cpp compositor.h
+ main.cpp
+ window.cpp window.h
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+#### Keys ignored in scope 1:.:.:wip-cpp-compositor.pro:<TRUE>:
+# INSTALLS = "target"
+# target.path = "$$[QT_INSTALL_EXAMPLES]/wayland/reference-cpp"
diff --git a/tests/manual/wlscaler/CMakeLists.txt b/tests/manual/wlscaler/CMakeLists.txt
new file mode 100644
index 000000000..57984af3c
--- /dev/null
+++ b/tests/manual/wlscaler/CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from wlscaler.pro.
+
+#####################################################################
+## wlscaler Binary:
+#####################################################################
+
+qt_add_manual_test(wlscaler
+ GUI
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::Qml
+)
+
+# Resources:
+set(qml_resource_files
+ "main.qml"
+)
+
+qt_add_resource(wlscaler "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+
+#### Keys ignored in scope 1:.:.:wlscaler.pro:<TRUE>:
+# TEMPLATE = "app"