summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Klokkhammer Helsing <johan.helsing@qt.io>2019-09-18 17:14:44 +0200
committerJohan Helsing <johan.helsing@qt.io>2019-11-26 11:29:29 +0000
commit12058b161e5f0d6f76523dc831acc8bdbc027fec (patch)
treeee6e6bf1c2730671544ca799b7ad414abcf17646
parentbad0b76e5a7ed73b685848a8fd6a3555b754a81a (diff)
Initial CMake port
The client, compositor, tests, plugins and examples now build. There are still a few minor issues: - The protocol source generation is a bit hacky. - The tests for checking if building CMake projects don't work anymore as they have Qt 5 specific code. They have just been commented out for now. Fixes: QTBUG-78177 Change-Id: Ie17cb05f0cdbd5b098970ce765adaeccf61a8fde Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
-rw-r--r--.prev_CMakeLists.txt23
-rw-r--r--CMakeLists.txt44
-rw-r--r--cmake/FindWaylandkms.cmake7
-rw-r--r--cmake/FindXComposite.cmake7
-rw-r--r--coin/module_config.yaml26
-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/cpp-client/CMakeLists.txt41
-rw-r--r--examples/wayland/custom-extension/qml-client/CMakeLists.txt58
-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.txt58
-rw-r--r--examples/wayland/server-buffer/cpp-client/CMakeLists.txt42
-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.txt54
-rw-r--r--examples/wayland/texture-sharing/qml-client/CMakeLists.txt44
-rw-r--r--src/.prev_CMakeLists.txt2
-rw-r--r--src/CMakeLists.txt58
-rw-r--r--src/client/.prev_CMakeLists.txt135
-rw-r--r--src/client/CMakeLists.txt135
-rw-r--r--src/client/Qt6WaylandClientMacros.cmake59
-rw-r--r--src/client/configure.cmake194
-rw-r--r--src/compositor/CMakeLists.txt212
-rw-r--r--src/compositor/Qt6WaylandCompositorMacros.cmake50
-rw-r--r--src/compositor/configure.cmake207
-rw-r--r--src/imports/CMakeLists.txt9
-rw-r--r--src/imports/compositor/CMakeLists.txt41
-rw-r--r--src/imports/texture-sharing-extension/CMakeLists.txt30
-rw-r--r--src/imports/texture-sharing/CMakeLists.txt37
-rw-r--r--src/plugins/CMakeLists.txt8
-rw-r--r--src/plugins/decorations/CMakeLists.txt3
-rw-r--r--src/plugins/decorations/bradient/CMakeLists.txt22
-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.txt36
-rw-r--r--src/plugins/hardwareintegration/client/dmabuf-server/CMakeLists.txt32
-rw-r--r--src/plugins/hardwareintegration/client/drm-egl-server/CMakeLists.txt32
-rw-r--r--src/plugins/hardwareintegration/client/libhybris-egl-server/CMakeLists.txt31
-rw-r--r--src/plugins/hardwareintegration/client/shm-emulation-server/CMakeLists.txt31
-rw-r--r--src/plugins/hardwareintegration/client/vulkan-server/CMakeLists.txt31
-rw-r--r--src/plugins/hardwareintegration/client/wayland-egl/CMakeLists.txt32
-rw-r--r--src/plugins/hardwareintegration/client/xcomposite-egl/CMakeLists.txt40
-rw-r--r--src/plugins/hardwareintegration/client/xcomposite-glx/CMakeLists.txt39
-rw-r--r--src/plugins/hardwareintegration/compositor/CMakeLists.txt34
-rw-r--r--src/plugins/hardwareintegration/compositor/brcm-egl/CMakeLists.txt33
-rw-r--r--src/plugins/hardwareintegration/compositor/dmabuf-server/CMakeLists.txt33
-rw-r--r--src/plugins/hardwareintegration/compositor/drm-egl-server/CMakeLists.txt33
-rw-r--r--src/plugins/hardwareintegration/compositor/hardwarelayer/CMakeLists.txt5
-rw-r--r--src/plugins/hardwareintegration/compositor/hardwarelayer/vsp2/CMakeLists.txt28
-rw-r--r--src/plugins/hardwareintegration/compositor/libhybris-egl-server/CMakeLists.txt33
-rw-r--r--src/plugins/hardwareintegration/compositor/linux-dmabuf-unstable-v1/CMakeLists.txt36
-rw-r--r--src/plugins/hardwareintegration/compositor/shm-emulation-server/CMakeLists.txt32
-rw-r--r--src/plugins/hardwareintegration/compositor/vulkan-server/CMakeLists.txt36
-rw-r--r--src/plugins/hardwareintegration/compositor/wayland-egl/CMakeLists.txt31
-rw-r--r--src/plugins/hardwareintegration/compositor/wayland-eglstream-controller/CMakeLists.txt37
-rw-r--r--src/plugins/hardwareintegration/compositor/xcomposite-egl/CMakeLists.txt40
-rw-r--r--src/plugins/hardwareintegration/compositor/xcomposite-glx/.prev_CMakeLists.txt38
-rw-r--r--src/plugins/hardwareintegration/compositor/xcomposite-glx/CMakeLists.txt39
-rw-r--r--src/plugins/platforms/CMakeLists.txt15
-rw-r--r--src/plugins/platforms/qwayland-brcm-egl/CMakeLists.txt36
-rw-r--r--src/plugins/platforms/qwayland-egl/CMakeLists.txt32
-rw-r--r--src/plugins/platforms/qwayland-generic/.prev_CMakeLists.txt21
-rw-r--r--src/plugins/platforms/qwayland-generic/CMakeLists.txt22
-rw-r--r--src/plugins/platforms/qwayland-xcomposite-egl/CMakeLists.txt39
-rw-r--r--src/plugins/platforms/qwayland-xcomposite-glx/CMakeLists.txt40
-rw-r--r--src/plugins/shellintegration/CMakeLists.txt20
-rw-r--r--src/plugins/shellintegration/fullscreen-shell-v1/CMakeLists.txt30
-rw-r--r--src/plugins/shellintegration/ivi-shell/CMakeLists.txt39
-rw-r--r--src/plugins/shellintegration/wl-shell/CMakeLists.txt38
-rw-r--r--src/plugins/shellintegration/xdg-shell-v5/CMakeLists.txt40
-rw-r--r--src/plugins/shellintegration/xdg-shell-v6/CMakeLists.txt38
-rw-r--r--src/plugins/shellintegration/xdg-shell/CMakeLists.txt40
-rw-r--r--src/qtwaylandscanner/CMakeLists.txt16
-rw-r--r--tests/.prev_CMakeLists.txt7
-rw-r--r--tests/CMakeLists.txt22
-rw-r--r--tests/auto/.prev_CMakeLists.txt11
-rw-r--r--tests/auto/CMakeLists.txt11
-rw-r--r--tests/auto/client/CMakeLists.txt19
-rw-r--r--tests/auto/client/client/.prev_CMakeLists.txt40
-rw-r--r--tests/auto/client/client/CMakeLists.txt41
-rw-r--r--tests/auto/client/datadevicev1/.prev_CMakeLists.txt31
-rw-r--r--tests/auto/client/datadevicev1/CMakeLists.txt32
-rw-r--r--tests/auto/client/fullscreenshellv1/.prev_CMakeLists.txt37
-rw-r--r--tests/auto/client/fullscreenshellv1/CMakeLists.txt38
-rw-r--r--tests/auto/client/inputcontext/.prev_CMakeLists.txt31
-rw-r--r--tests/auto/client/inputcontext/CMakeLists.txt32
-rw-r--r--tests/auto/client/iviapplication/.prev_CMakeLists.txt37
-rw-r--r--tests/auto/client/iviapplication/CMakeLists.txt38
-rw-r--r--tests/auto/client/output/.prev_CMakeLists.txt31
-rw-r--r--tests/auto/client/output/CMakeLists.txt32
-rw-r--r--tests/auto/client/primaryselectionv1/.prev_CMakeLists.txt32
-rw-r--r--tests/auto/client/primaryselectionv1/CMakeLists.txt33
-rw-r--r--tests/auto/client/seatv4/.prev_CMakeLists.txt42
-rw-r--r--tests/auto/client/seatv4/CMakeLists.txt43
-rw-r--r--tests/auto/client/seatv5/.prev_CMakeLists.txt31
-rw-r--r--tests/auto/client/seatv5/CMakeLists.txt32
-rw-r--r--tests/auto/client/surface/.prev_CMakeLists.txt31
-rw-r--r--tests/auto/client/surface/CMakeLists.txt32
-rw-r--r--tests/auto/client/wl_connect/CMakeLists.txt14
-rw-r--r--tests/auto/client/xdgdecorationv1/.prev_CMakeLists.txt32
-rw-r--r--tests/auto/client/xdgdecorationv1/CMakeLists.txt33
-rw-r--r--tests/auto/client/xdgoutput/.prev_CMakeLists.txt32
-rw-r--r--tests/auto/client/xdgoutput/CMakeLists.txt33
-rw-r--r--tests/auto/client/xdgshell/.prev_CMakeLists.txt31
-rw-r--r--tests/auto/client/xdgshell/CMakeLists.txt32
-rw-r--r--tests/auto/client/xdgshellv6/.prev_CMakeLists.txt37
-rw-r--r--tests/auto/client/xdgshellv6/CMakeLists.txt38
-rw-r--r--tests/auto/compositor/CMakeLists.txt3
-rw-r--r--tests/auto/compositor/compositor/CMakeLists.txt45
-rw-r--r--tests/manual/qmlclient/CMakeLists.txt34
-rw-r--r--tests/manual/scaling-compositor/CMakeLists.txt31
-rw-r--r--tests/manual/subsurface/CMakeLists.txt36
-rw-r--r--tests/manual/texture-sharing/cpp-client/CMakeLists.txt29
-rw-r--r--tests/manual/wip-cpp-compositor/CMakeLists.txt20
-rw-r--r--tests/manual/wlscaler/CMakeLists.txt30
132 files changed, 4924 insertions, 0 deletions
diff --git a/.prev_CMakeLists.txt b/.prev_CMakeLists.txt
new file mode 100644
index 000000000..5a2b960d9
--- /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 APPLE_OSX AND (ANDROID OR NOT LINUX))
+ message(NOTICE "Skipping the build as the condition \"APPLE_OSX OR LINUX\" 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..a96c05ac8
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,44 @@
+# 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
+ Quick
+ ServiceSupport
+ VulkanSupport
+ XkbCommonSupport
+)
+# special case end
+
+if(NOT APPLE_OSX AND (ANDROID OR NOT LINUX))
+ message(NOTICE "Skipping the build as the condition \"APPLE_OSX OR LINUX\" 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..6c53b4b49
--- /dev/null
+++ b/coin/module_config.yaml
@@ -0,0 +1,26 @@
+version: 1
+accept_configuration:
+ condition: property
+ property: host.os
+ equals_property: target.os
+
+build_instructions:
+ - !include "{{qt/qtbase}}/prepare_building_env.yaml"
+ - !include "{{qt/qtbase}}/cmake_module_build_instructions.yaml"
+ - !include "{{qt/qtbase}}/cmake_build_and_upload_test_artifacts.yaml"
+
+test_instructions:
+ - type: Group
+ instructions:
+ - !include "{{qt/qtbase}}/cmake_regular_test_instructions.yaml"
+ disable_if:
+ condition: property
+ property: host.os
+ equals_value: Windows
+ - type: EnvironmentVariable
+ variableName: Dummy
+ variableValue: dummy
+ enable_if:
+ condition: property
+ property: host.os
+ equals_value: Windows
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/cpp-client/CMakeLists.txt b/examples/wayland/custom-extension/cpp-client/CMakeLists.txt
new file mode 100644
index 000000000..8f3708a19
--- /dev/null
+++ b/examples/wayland/custom-extension/cpp-client/CMakeLists.txt
@@ -0,0 +1,41 @@
+# 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 PRIVATE
+ Qt::GuiPrivate
+)
+
+target_link_libraries(custom-extension-cpp-client PUBLIC
+ Qt::Core
+ Qt::Gui
+ 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/qml-client/CMakeLists.txt b/examples/wayland/custom-extension/qml-client/CMakeLists.txt
new file mode 100644
index 000000000..f490b507d
--- /dev/null
+++ b/examples/wayland/custom-extension/qml-client/CMakeLists.txt
@@ -0,0 +1,58 @@
+# 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 PRIVATE
+ Qt::GuiPrivate
+)
+
+target_link_libraries(custom-extension-qml-client PUBLIC
+ Qt::Core
+ Qt::Gui
+ 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/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..dc47cfe0c
--- /dev/null
+++ b/examples/wayland/server-buffer/compositor/CMakeLists.txt
@@ -0,0 +1,58 @@
+# 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 PRIVATE
+ Qt::WaylandCompositorPrivate
+)
+
+target_link_libraries(compositor PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::WaylandCompositor
+)
+
+
+# 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..5b4c1e95c
--- /dev/null
+++ b/examples/wayland/server-buffer/cpp-client/CMakeLists.txt
@@ -0,0 +1,42 @@
+# 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)
+
+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 PRIVATE
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+)
+
+target_link_libraries(server-buffer-cpp-client PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+)
+
+install(TARGETS server-buffer-cpp-client
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
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..ea56f9c3f
--- /dev/null
+++ b/examples/wayland/texture-sharing/custom-compositor/CMakeLists.txt
@@ -0,0 +1,54 @@
+# 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 PRIVATE
+ Qt::WaylandCompositorPrivate
+)
+
+target_link_libraries(texture-sharing-custom-compositor PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::WaylandCompositor
+)
+
+
+# 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/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..c55baa556
--- /dev/null
+++ b/src/.prev_CMakeLists.txt
@@ -0,0 +1,2 @@
+# Generated from src.pro.
+
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..274cf70d6
--- /dev/null
+++ b/src/client/.prev_CMakeLists.txt
@@ -0,0 +1,135 @@
+# 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
+ 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
+)
+
+qt6_generate_wayland_protocol_client_sources(WaylandClient
+ FILES
+ ${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 linuxaccessibility_support_private
+ LIBRARIES
+ linuxaccessibility_support_private
+)
+
+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..133865179
--- /dev/null
+++ b/src/client/CMakeLists.txt
@@ -0,0 +1,135 @@
+# 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
+ 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
+)
+
+qt6_generate_wayland_protocol_client_sources(WaylandClient
+ FILES
+ ${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::LinuxAccessibilitySupportPrivate # special case
+ LIBRARIES
+ Qt::LinuxAccessibilitySupportPrivate # special case
+)
+
+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/Qt6WaylandClientMacros.cmake b/src/client/Qt6WaylandClientMacros.cmake
new file mode 100644
index 000000000..83e557ffd
--- /dev/null
+++ b/src/client/Qt6WaylandClientMacros.cmake
@@ -0,0 +1,59 @@
+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 "xcomposite-egl" "xcomposite-glx" "qwayland-xcomposite-egl" "qwayland-xcomposite-glx")
+ 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/compositor/CMakeLists.txt b/src/compositor/CMakeLists.txt
new file mode 100644
index 000000000..734fb8433
--- /dev/null
+++ b/src/compositor/CMakeLists.txt
@@ -0,0 +1,212 @@
+# 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
+)
+
+# 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:
+#####################################################################
+
+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
+)
+
+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
+)
+
+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
+ LIBRARIES
+ Qt::QmlPrivate
+ Qt::QuickPrivate
+ PUBLIC_LIBRARIES
+ Qt::Qml
+ Qt::Quick
+)
+
+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/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/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/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..e65d90193
--- /dev/null
+++ b/src/imports/compositor/CMakeLists.txt
@@ -0,0 +1,41 @@
+# 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
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::QmlPrivate
+ Qt::QuickPrivate
+ Qt::WaylandCompositorPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::WaylandCompositor
+)
+#### 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..c816448c4
--- /dev/null
+++ b/src/imports/texture-sharing-extension/CMakeLists.txt
@@ -0,0 +1,30 @@
+# 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
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::QuickPrivate
+ Qt::WaylandCompositorPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::WaylandCompositor
+)
+
+#### 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..cc787b288
--- /dev/null
+++ b/src/imports/texture-sharing/CMakeLists.txt
@@ -0,0 +1,37 @@
+# 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
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::QuickPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::WaylandClient
+)
+
+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..760718cac
--- /dev/null
+++ b/src/plugins/decorations/bradient/CMakeLists.txt
@@ -0,0 +1,22 @@
+# Generated from bradient.pro.
+
+#####################################################################
+## bradient Plugin:
+#####################################################################
+
+qt_add_plugin(bradient
+ TYPE wayland-decoration-client
+ CLASS_NAME QWaylandBradientDecorationPlugin
+ SOURCES
+ main.cpp
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+ 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..e02b020e6
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/brcm-egl/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from brcm-egl.pro.
+
+#####################################################################
+## brcm-egl Plugin:
+#####################################################################
+
+qt_add_plugin(brcm-egl
+ TYPE wayland-graphics-integration-client
+ CLASS_NAME QWaylandBrcmEglClientBufferPlugin
+ 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
+ LIBRARIES
+ Qt::EglSupportPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ ${CMAKE_DL_LIBS}
+ EGL::EGL
+ Qt::Core
+ Qt::EglSupport
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(brcm-egl
+ 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..41d7c12e2
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/dmabuf-server/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Generated from dmabuf-server.pro.
+
+#####################################################################
+## dmabuf-server Plugin:
+#####################################################################
+
+qt_add_plugin(dmabuf-server
+ TYPE wayland-graphics-integration-client
+ CLASS_NAME DmaBufServerBufferPlugin
+ SOURCES
+ ../../../../hardwareintegration/client/dmabuf-server/dmabufserverbufferintegration.cpp ../../../../hardwareintegration/client/dmabuf-server/dmabufserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/dmabuf-server
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(dmabuf-server
+ 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..337857cc2
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/drm-egl-server/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Generated from drm-egl-server.pro.
+
+#####################################################################
+## drm-egl-server Plugin:
+#####################################################################
+
+qt_add_plugin(drm-egl-server
+ TYPE wayland-graphics-integration-client
+ CLASS_NAME DrmEglServerBufferPlugin
+ SOURCES
+ ../../../../hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.cpp ../../../../hardwareintegration/client/drm-egl-server/drmeglserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/drm-egl-server
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(drm-egl-server
+ 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..ca1738f50
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/libhybris-egl-server/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from libhybris-egl-server.pro.
+
+#####################################################################
+## libhybris-egl-server Plugin:
+#####################################################################
+
+qt_add_plugin(libhybris-egl-server
+ TYPE wayland-graphics-integration-client
+ CLASS_NAME LibHybrisEglServerBufferPlugin
+ SOURCES
+ ../../../../hardwareintegration/client/libhybris-egl-server/libhybriseglserverbufferintegration.cpp ../../../../hardwareintegration/client/libhybris-egl-server/libhybriseglserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/libhybris-egl-server
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(libhybris-egl-server
+ 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..d7a7294ec
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/shm-emulation-server/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from shm-emulation-server.pro.
+
+#####################################################################
+## shm-emulation-server Plugin:
+#####################################################################
+
+qt_add_plugin(shm-emulation-server
+ TYPE wayland-graphics-integration-client
+ CLASS_NAME ShmServerBufferPlugin
+ SOURCES
+ ../../../../hardwareintegration/client/shm-emulation-server/shmserverbufferintegration.cpp ../../../../hardwareintegration/client/shm-emulation-server/shmserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/shm-emulation-server
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(shm-emulation-server
+ 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..46ad01249
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/vulkan-server/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from vulkan-server.pro.
+
+#####################################################################
+## vulkan-server Plugin:
+#####################################################################
+
+qt_add_plugin(vulkan-server
+ TYPE wayland-graphics-integration-client
+ CLASS_NAME VulkanServerBufferPlugin
+ SOURCES
+ ../../../../hardwareintegration/client/vulkan-server/vulkanserverbufferintegration.cpp ../../../../hardwareintegration/client/vulkan-server/vulkanserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/client/vulkan-server
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(vulkan-server
+ 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..cbe1b6a9f
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/wayland-egl/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Generated from wayland-egl.pro.
+
+#####################################################################
+## qt-plugin-wayland-egl Plugin:
+#####################################################################
+
+qt_add_plugin(qt-plugin-wayland-egl
+ TYPE wayland-graphics-integration-client
+ CLASS_NAME QWaylandEglClientBufferPlugin
+ 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
+ LIBRARIES
+ Qt::EglSupportPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ Qt::Core
+ Qt::EglSupport
+ Qt::Gui
+ Qt::WaylandClient
+ 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..a4b6e2741
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/xcomposite-egl/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Generated from xcomposite-egl.pro.
+
+#####################################################################
+## xcomposite-egl Plugin:
+#####################################################################
+
+qt_add_plugin(xcomposite-egl
+ TYPE wayland-graphics-integration-client
+ CLASS_NAME QWaylandXCompositeEglClientBufferPlugin
+ 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
+ LIBRARIES
+ Qt::EglSupportPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::EglSupport
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+ X11::X11
+)
+
+qt6_generate_wayland_protocol_client_sources(xcomposite-egl
+ 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..179dd8db2
--- /dev/null
+++ b/src/plugins/hardwareintegration/client/xcomposite-glx/CMakeLists.txt
@@ -0,0 +1,39 @@
+# Generated from xcomposite-glx.pro.
+
+#####################################################################
+## xcomposite-glx Plugin:
+#####################################################################
+
+qt_add_plugin(xcomposite-glx
+ TYPE wayland-graphics-integration-client
+ CLASS_NAME QWaylandXCompositeGlxClientBufferPlugin
+ 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
+ LIBRARIES
+ Qt::GlxSupportPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ ${CMAKE_DL_LIBS}
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::GlxSupport
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+ X11::X11
+)
+
+qt6_generate_wayland_protocol_client_sources(xcomposite-glx
+ 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..cbe9a8de8
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/brcm-egl/CMakeLists.txt
@@ -0,0 +1,33 @@
+# Generated from brcm-egl.pro.
+
+#####################################################################
+## qt-wayland-compositor-brcm-egl Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-brcm-egl
+ TYPE wayland-graphics-integration-server
+ CLASS_NAME QWaylandBrcmClientBufferIntegrationPlugin
+ 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
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+qt6_generate_wayland_protocol_server_sources(qt-wayland-compositor-brcm-egl
+ 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..eb66943e5
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/dmabuf-server/CMakeLists.txt
@@ -0,0 +1,33 @@
+# Generated from dmabuf-server.pro.
+
+#####################################################################
+## qt-wayland-compositor-dmabuf-server-buffer Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-dmabuf-server-buffer
+ TYPE wayland-graphics-integration-server
+ CLASS_NAME DmaBufServerBufferIntegrationPlugin
+ SOURCES
+ ../../../../hardwareintegration/compositor/dmabuf-server/dmabufserverbufferintegration.cpp ../../../../hardwareintegration/compositor/dmabuf-server/dmabufserverbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/dmabuf-server
+ LIBRARIES
+ EGL::EGL
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+qt6_generate_wayland_protocol_server_sources(qt-wayland-compositor-dmabuf-server-buffer
+ 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..75803bbeb
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/drm-egl-server/CMakeLists.txt
@@ -0,0 +1,33 @@
+# Generated from drm-egl-server.pro.
+
+#####################################################################
+## qt-wayland-compositor-drm-egl-server-buffer Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-drm-egl-server-buffer
+ TYPE wayland-graphics-integration-server
+ CLASS_NAME DrmEglServerBufferIntegrationPlugin
+ 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
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+qt6_generate_wayland_protocol_server_sources(qt-wayland-compositor-drm-egl-server-buffer
+ 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..c10ce1101
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/hardwarelayer/vsp2/CMakeLists.txt
@@ -0,0 +1,28 @@
+# Generated from vsp2.pro.
+
+#####################################################################
+## qt-wayland-compositor-vsp2 Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-vsp2
+ TYPE wayland-hardware-layer-integration
+ CLASS_NAME Vsp2HardwareLayerIntegrationPlugin
+ SOURCES
+ ../../../../../hardwareintegration/compositor/hardwarelayer/vsp2/vsp2hardwarelayerintegration.cpp ../../../../../hardwareintegration/compositor/hardwarelayer/vsp2/vsp2hardwarelayerintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../../hardwareintegration/compositor/hardwarelayer/vsp2
+ LIBRARIES
+ PkgConfig::Waylandkms
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+#### 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..0dc08b7ab
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/libhybris-egl-server/CMakeLists.txt
@@ -0,0 +1,33 @@
+# Generated from libhybris-egl-server.pro.
+
+#####################################################################
+## qt-wayland-compositor-libybris-egl-server.json Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-libybris-egl-server.json
+ TYPE wayland-graphics-integration-server
+ CLASS_NAME LibHybrisEglServerBufferIntegrationPlugin
+ 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
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+qt6_generate_wayland_protocol_server_sources(qt-wayland-compositor-libybris-egl-server.json
+ 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..6d0a70398
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/linux-dmabuf-unstable-v1/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from linux-dmabuf-unstable-v1.pro.
+
+#####################################################################
+## qt-wayland-compositor-linux-dmabuf-unstable-v1 Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-linux-dmabuf-unstable-v1
+ TYPE wayland-graphics-integration-server
+ CLASS_NAME QWaylandDmabufClientBufferIntegrationPlugin
+ 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
+ Qt::CorePrivate
+ Qt::EglSupportPrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::EglSupport
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+qt6_generate_wayland_protocol_server_sources(qt-wayland-compositor-linux-dmabuf-unstable-v1
+ 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..d49a06007
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/shm-emulation-server/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Generated from shm-emulation-server.pro.
+
+#####################################################################
+## qt-wayland-compositor-shm-emulation-server Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-shm-emulation-server
+ TYPE wayland-graphics-integration-server
+ CLASS_NAME ShmServerBufferIntegrationPlugin
+ 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
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+qt6_generate_wayland_protocol_server_sources(qt-wayland-compositor-shm-emulation-server
+ 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..e666e1441
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/vulkan-server/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from vulkan-server.pro.
+
+#####################################################################
+## qt-wayland-compositor-vulkan-server Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-vulkan-server
+ TYPE wayland-graphics-integration-server
+ CLASS_NAME VulkanServerBufferIntegrationPlugin
+ 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
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::VulkanSupportPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::VulkanSupport
+ Qt::WaylandCompositor
+)
+
+qt6_generate_wayland_protocol_server_sources(qt-wayland-compositor-vulkan-server
+ 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..558403a11
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/wayland-egl/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from wayland-egl.pro.
+
+#####################################################################
+## qt-wayland-compositor-wayland-egl Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-wayland-egl
+ TYPE wayland-graphics-integration-server
+ CLASS_NAME QWaylandEglClientBufferIntegrationPlugin
+ SOURCES
+ ../../../../hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp ../../../../hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.h
+ main.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../hardwareintegration/compositor/wayland-egl
+ LIBRARIES
+ EGL::EGL
+ Qt::CorePrivate
+ Qt::EglSupportPrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Egl
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::EglSupport
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+#### 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..5d1cacc05
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/wayland-eglstream-controller/CMakeLists.txt
@@ -0,0 +1,37 @@
+# Generated from wayland-eglstream-controller.pro.
+
+#####################################################################
+## qt-wayland-compositor-wayland-eglstream-controller Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-wayland-eglstream-controller
+ TYPE wayland-graphics-integration-server
+ CLASS_NAME QWaylandEglStreamBufferIntegrationPlugin
+ 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
+ Qt::CorePrivate
+ Qt::EglSupportPrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Egl
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::EglSupport
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+qt6_generate_wayland_protocol_server_sources(qt-wayland-compositor-wayland-eglstream-controller
+ 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..76dee2845
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/xcomposite-egl/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Generated from xcomposite-egl.pro.
+
+#####################################################################
+## qt-wayland-compositor-xcomposite-egl Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-xcomposite-egl
+ TYPE wayland-graphics-integration-server
+ CLASS_NAME QWaylandXCompositeEglClientBufferIntegrationPlugin
+ 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
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Server
+ X11::X11
+ PUBLIC_LIBRARIES
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+qt6_generate_wayland_protocol_server_sources(qt-wayland-compositor-xcomposite-egl
+ 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..450a9df77
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/xcomposite-glx/.prev_CMakeLists.txt
@@ -0,0 +1,38 @@
+# Generated from xcomposite-glx.pro.
+
+#####################################################################
+## qt-wayland-compositor-xcomposite-glx Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-xcomposite-glx
+ TYPE wayland-graphics-integration-server
+ CLASS_NAME QWaylandXCompositeGlxClientBufferIntegrationPlugin
+ 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::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+qt6_generate_wayland_protocol_server_sources(qt-wayland-compositor-xcomposite-glx
+ 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..ecb8066de
--- /dev/null
+++ b/src/plugins/hardwareintegration/compositor/xcomposite-glx/CMakeLists.txt
@@ -0,0 +1,39 @@
+# Generated from xcomposite-glx.pro.
+
+#####################################################################
+## qt-wayland-compositor-xcomposite-glx Plugin:
+#####################################################################
+
+qt_add_plugin(qt-wayland-compositor-xcomposite-glx
+ TYPE wayland-graphics-integration-server
+ CLASS_NAME QWaylandXCompositeGlxClientBufferIntegrationPlugin
+ 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::CorePrivate
+ Qt::GlxSupportPrivate # special case
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ Wayland::Server
+ PUBLIC_LIBRARIES
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandCompositor
+)
+
+qt6_generate_wayland_protocol_server_sources(qt-wayland-compositor-xcomposite-glx
+ 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..ed42a728d
--- /dev/null
+++ b/src/plugins/platforms/qwayland-brcm-egl/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from qwayland-brcm-egl.pro.
+
+#####################################################################
+## qwayland-brcm-egl Plugin:
+#####################################################################
+
+qt_add_plugin(qwayland-brcm-egl
+ TYPE platforms
+ CLASS_NAME QWaylandBrcmEglPlatformIntegrationPlugin
+ 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
+ LIBRARIES
+ Qt::EglSupportPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ ${CMAKE_DL_LIBS}
+ EGL::EGL
+ Qt::Core
+ Qt::EglSupport
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(qwayland-brcm-egl
+ 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..03cfdfcc3
--- /dev/null
+++ b/src/plugins/platforms/qwayland-egl/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Generated from qwayland-egl.pro.
+
+#####################################################################
+## qwayland-egl Plugin:
+#####################################################################
+
+qt_add_plugin(qwayland-egl
+ TYPE platforms
+ CLASS_NAME QWaylandEglPlatformIntegrationPlugin
+ 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
+ LIBRARIES
+ Qt::EglSupportPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ Qt::Core
+ Qt::EglSupport
+ Qt::Gui
+ Qt::WaylandClient
+ 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..d3d71e3fe
--- /dev/null
+++ b/src/plugins/platforms/qwayland-generic/.prev_CMakeLists.txt
@@ -0,0 +1,21 @@
+# Generated from qwayland-generic.pro.
+
+#####################################################################
+## qwayland-generic Plugin:
+#####################################################################
+
+qt_add_plugin(qwayland-generic
+ TYPE platforms
+ CLASS_NAME QWaylandIntegrationPlugin
+ SOURCES
+ main.cpp
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+)
+
+#### 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..e512e5b05
--- /dev/null
+++ b/src/plugins/platforms/qwayland-generic/CMakeLists.txt
@@ -0,0 +1,22 @@
+# Generated from qwayland-generic.pro.
+
+#####################################################################
+## qwayland-generic Plugin:
+#####################################################################
+
+qt_add_plugin(qwayland-generic
+ TYPE platforms
+ CLASS_NAME QWaylandIntegrationPlugin
+ DEFAULT_IF ${QT_QPA_DEFAULT_PLATFORM} MATCHES wayland # special case
+ SOURCES
+ main.cpp
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+)
+
+#### 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..c0dbf5368
--- /dev/null
+++ b/src/plugins/platforms/qwayland-xcomposite-egl/CMakeLists.txt
@@ -0,0 +1,39 @@
+# Generated from qwayland-xcomposite-egl.pro.
+
+#####################################################################
+## qwayland-xcomposite-egl Plugin:
+#####################################################################
+
+qt_add_plugin(qwayland-xcomposite-egl
+ TYPE platforms
+ CLASS_NAME QWaylandXCompositeEglPlatformIntegrationPlugin
+ 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
+ LIBRARIES
+ Qt::EglSupportPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ EGL::EGL
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::EglSupport
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+ X11::X11
+)
+
+qt6_generate_wayland_protocol_client_sources(qwayland-xcomposite-egl
+ 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..ac8dce830
--- /dev/null
+++ b/src/plugins/platforms/qwayland-xcomposite-glx/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Generated from qwayland-xcomposite-glx.pro.
+
+#####################################################################
+## qwayland-xcomposite-glx Plugin:
+#####################################################################
+
+qt_add_plugin(qwayland-xcomposite-glx
+ TYPE platforms
+ CLASS_NAME QWaylandXCompositeGlxPlatformIntegrationPlugin
+ 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
+ LIBRARIES
+ Qt::GlxSupportPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ ${CMAKE_DL_LIBS}
+ PkgConfig::XComposite
+ Qt::Core
+ Qt::GlxSupport
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+ X11::X11
+)
+
+qt6_generate_wayland_protocol_client_sources(qwayland-xcomposite-glx
+ 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..7cc47c757
--- /dev/null
+++ b/src/plugins/shellintegration/fullscreen-shell-v1/CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from fullscreen-shell-v1.pro.
+
+#####################################################################
+## fullscreen-shell-v1 Plugin:
+#####################################################################
+
+qt_add_plugin(fullscreen-shell-v1
+ TYPE wayland-shell-integration
+ CLASS_NAME QWaylandFullScreenShellV1IntegrationPlugin
+ SOURCES
+ main.cpp
+ qwaylandfullscreenshellv1integration.cpp qwaylandfullscreenshellv1integration.h
+ qwaylandfullscreenshellv1surface.cpp qwaylandfullscreenshellv1surface.h
+ LIBRARIES
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(fullscreen-shell-v1
+ 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..214c5ee66
--- /dev/null
+++ b/src/plugins/shellintegration/ivi-shell/CMakeLists.txt
@@ -0,0 +1,39 @@
+# Generated from ivi-shell.pro.
+
+#####################################################################
+## ivi-shell Plugin:
+#####################################################################
+
+qt_add_plugin(ivi-shell
+ TYPE wayland-shell-integration
+ CLASS_NAME QWaylandIviShellIntegrationPlugin
+ SOURCES
+ main.cpp
+ qwaylandivishellintegration.cpp qwaylandivishellintegration.h
+ qwaylandivisurface.cpp qwaylandivisurface_p.h
+ LIBRARIES
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(ivi-shell
+ 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(ivi-shell 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..858915242
--- /dev/null
+++ b/src/plugins/shellintegration/wl-shell/CMakeLists.txt
@@ -0,0 +1,38 @@
+# Generated from wl-shell.pro.
+
+#####################################################################
+## wl-shell Plugin:
+#####################################################################
+
+qt_add_plugin(wl-shell
+ TYPE wayland-shell-integration
+ CLASS_NAME QWaylandWlShellIntegrationPlugin
+ SOURCES
+ main.cpp
+ qwaylandwlshellintegration.cpp qwaylandwlshellintegration_p.h
+ qwaylandwlshellsurface.cpp qwaylandwlshellsurface_p.h
+ LIBRARIES
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(wl-shell
+ 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(wl-shell 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..3fa2ba746
--- /dev/null
+++ b/src/plugins/shellintegration/xdg-shell-v5/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Generated from xdg-shell-v5.pro.
+
+#####################################################################
+## xdg-shell-v5 Plugin:
+#####################################################################
+
+qt_add_plugin(xdg-shell-v5
+ TYPE wayland-shell-integration
+ CLASS_NAME QWaylandXdgShellV5IntegrationPlugin
+ 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
+ LIBRARIES
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+#### Keys ignored in scope 1:.:.:xdg-shell-v5.pro:<TRUE>:
+# OTHER_FILES = "xdg-shell-v5.json"
+
+## Scopes:
+#####################################################################
+
+qt_extend_target(xdg-shell-v5 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..d6fa7dd6a
--- /dev/null
+++ b/src/plugins/shellintegration/xdg-shell-v6/CMakeLists.txt
@@ -0,0 +1,38 @@
+# Generated from xdg-shell-v6.pro.
+
+#####################################################################
+## xdg-shell-v6 Plugin:
+#####################################################################
+
+qt_add_plugin(xdg-shell-v6
+ TYPE wayland-shell-integration
+ CLASS_NAME QWaylandXdgShellV6IntegrationPlugin
+ SOURCES
+ main.cpp
+ qwaylandxdgshellv6.cpp qwaylandxdgshellv6_p.h
+ qwaylandxdgshellv6integration.cpp qwaylandxdgshellv6integration_p.h
+ LIBRARIES
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(xdg-shell-v6
+ 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(xdg-shell-v6 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..96a02fc7f
--- /dev/null
+++ b/src/plugins/shellintegration/xdg-shell/CMakeLists.txt
@@ -0,0 +1,40 @@
+# Generated from xdg-shell.pro.
+
+#####################################################################
+## xdg-shell Plugin:
+#####################################################################
+
+qt_add_plugin(xdg-shell
+ TYPE wayland-shell-integration
+ CLASS_NAME QWaylandXdgShellIntegrationPlugin
+ SOURCES
+ main.cpp
+ qwaylandxdgdecorationv1.cpp qwaylandxdgdecorationv1_p.h
+ qwaylandxdgshell.cpp qwaylandxdgshell_p.h
+ qwaylandxdgshellintegration.cpp qwaylandxdgshellintegration_p.h
+ LIBRARIES
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Gui
+ Qt::WaylandClient
+ Wayland::Client
+)
+
+qt6_generate_wayland_protocol_client_sources(xdg-shell
+ 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(xdg-shell CONDITION QT_FEATURE_xkbcommon
+ LIBRARIES
+ XKB::XKB
+)
diff --git a/src/qtwaylandscanner/CMakeLists.txt b/src/qtwaylandscanner/CMakeLists.txt
new file mode 100644
index 000000000..107702c31
--- /dev/null
+++ b/src/qtwaylandscanner/CMakeLists.txt
@@ -0,0 +1,16 @@
+# Generated from qtwaylandscanner.pro.
+
+#####################################################################
+## qtwaylandscanner Tool:
+#####################################################################
+
+qt_add_tool(qtwaylandscanner
+ TOOLS_TARGET QtWaylandScanner # special case
+ SOURCES
+ qtwaylandscanner.cpp
+ PUBLIC_LIBRARIES
+ Qt::Gui
+)
+
+#### Keys ignored in scope 1:.:.:qtwaylandscanner.pro:<TRUE>:
+# _OPTION = "host_build"
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..57d928bf6
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,22 @@
+# 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.
+ # special case begin
+ qt_find_package(Qt6 ${PROJECT_VERSION} OPTIONAL_COMPONENTS WaylandCompositor WaylandClient QtWaylandScannerTools)
+
+ if (NOT Qt6QtWaylandScannerTools_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()
+
+ # TODO: Why do we need this? shouldn't find_package for QtWaylandScannerTools be enough?
+ qt_find_package(WaylandScanner PROVIDED_TARGETS Wayland::Scanner)
+ # special case end
+endif()
+qt_find_package(Threads REQUIRED) # special case
+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..bd18ec3e1
--- /dev/null
+++ b/tests/auto/client/CMakeLists.txt
@@ -0,0 +1,19 @@
+# Generated from client.pro.
+
+add_subdirectory(client)
+add_subdirectory(datadevicev1)
+add_subdirectory(fullscreenshellv1)
+add_subdirectory(iviapplication)
+add_subdirectory(output)
+add_subdirectory(primaryselectionv1)
+add_subdirectory(seatv4)
+add_subdirectory(seatv5)
+add_subdirectory(surface)
+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..6fe4bb92d
--- /dev/null
+++ b/tests/auto/client/client/.prev_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
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..a20ea811c
--- /dev/null
+++ b/tests/auto/client/client/CMakeLists.txt
@@ -0,0 +1,41 @@
+# 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
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..bfea14349
--- /dev/null
+++ b/tests/auto/client/datadevicev1/.prev_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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..ad58772d4
--- /dev/null
+++ b/tests/auto/client/datadevicev1/CMakeLists.txt
@@ -0,0 +1,32 @@
+# 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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..5daef3bb3
--- /dev/null
+++ b/tests/auto/client/fullscreenshellv1/.prev_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
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..00348df99
--- /dev/null
+++ b/tests/auto/client/fullscreenshellv1/CMakeLists.txt
@@ -0,0 +1,38 @@
+# 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
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..d5df86a13
--- /dev/null
+++ b/tests/auto/client/inputcontext/.prev_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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..dfa788b31
--- /dev/null
+++ b/tests/auto/client/inputcontext/CMakeLists.txt
@@ -0,0 +1,32 @@
+# 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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..4193ba9b0
--- /dev/null
+++ b/tests/auto/client/iviapplication/.prev_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
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..38111c95e
--- /dev/null
+++ b/tests/auto/client/iviapplication/CMakeLists.txt
@@ -0,0 +1,38 @@
+# 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
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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/output/.prev_CMakeLists.txt b/tests/auto/client/output/.prev_CMakeLists.txt
new file mode 100644
index 000000000..8595888e9
--- /dev/null
+++ b/tests/auto/client/output/.prev_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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..c453ac424
--- /dev/null
+++ b/tests/auto/client/output/CMakeLists.txt
@@ -0,0 +1,32 @@
+# 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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..77a994dd4
--- /dev/null
+++ b/tests/auto/client/primaryselectionv1/.prev_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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..af9122343
--- /dev/null
+++ b/tests/auto/client/primaryselectionv1/CMakeLists.txt
@@ -0,0 +1,33 @@
+# 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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..ab7eb380f
--- /dev/null
+++ b/tests/auto/client/seatv4/.prev_CMakeLists.txt
@@ -0,0 +1,42 @@
+# 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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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
+ LIBRARIES
+ Qt::GuiPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Wayland::Cursor
+)
diff --git a/tests/auto/client/seatv4/CMakeLists.txt b/tests/auto/client/seatv4/CMakeLists.txt
new file mode 100644
index 000000000..bd14a6a8b
--- /dev/null
+++ b/tests/auto/client/seatv4/CMakeLists.txt
@@ -0,0 +1,43 @@
+# 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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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
+ LIBRARIES
+ Qt::GuiPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ 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..778c42c0b
--- /dev/null
+++ b/tests/auto/client/seatv5/.prev_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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..38c5d980f
--- /dev/null
+++ b/tests/auto/client/seatv5/CMakeLists.txt
@@ -0,0 +1,32 @@
+# 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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..bb7289286
--- /dev/null
+++ b/tests/auto/client/surface/.prev_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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..1470f414e
--- /dev/null
+++ b/tests/auto/client/surface/CMakeLists.txt
@@ -0,0 +1,32 @@
+# 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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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/wl_connect/CMakeLists.txt b/tests/auto/client/wl_connect/CMakeLists.txt
new file mode 100644
index 000000000..5ad3ac6a4
--- /dev/null
+++ b/tests/auto/client/wl_connect/CMakeLists.txt
@@ -0,0 +1,14 @@
+# Generated from wl_connect.pro.
+
+#####################################################################
+## tst_wlconnect Test:
+#####################################################################
+
+qt_add_test(tst_wlconnect
+ SOURCES
+ tst_wlconnect.cpp
+ LIBRARIES
+ Qt::GuiPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+)
diff --git a/tests/auto/client/xdgdecorationv1/.prev_CMakeLists.txt b/tests/auto/client/xdgdecorationv1/.prev_CMakeLists.txt
new file mode 100644
index 000000000..a73e1055c
--- /dev/null
+++ b/tests/auto/client/xdgdecorationv1/.prev_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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..5d26b7fc8
--- /dev/null
+++ b/tests/auto/client/xdgdecorationv1/CMakeLists.txt
@@ -0,0 +1,33 @@
+# 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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..1a3afc1e2
--- /dev/null
+++ b/tests/auto/client/xdgoutput/.prev_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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..855268c94
--- /dev/null
+++ b/tests/auto/client/xdgoutput/CMakeLists.txt
@@ -0,0 +1,33 @@
+# 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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..4dc670e9d
--- /dev/null
+++ b/tests/auto/client/xdgshell/.prev_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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..025013e9f
--- /dev/null
+++ b/tests/auto/client/xdgshell/CMakeLists.txt
@@ -0,0 +1,32 @@
+# 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
+ LIBRARIES
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..ee3514f58
--- /dev/null
+++ b/tests/auto/client/xdgshellv6/.prev_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
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..fe3588899
--- /dev/null
+++ b/tests/auto/client/xdgshellv6/CMakeLists.txt
@@ -0,0 +1,38 @@
+# 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
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+ 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..511550e99
--- /dev/null
+++ b/tests/auto/compositor/compositor/CMakeLists.txt
@@ -0,0 +1,45 @@
+# 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
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ Qt::WaylandCompositorPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandCompositor
+ 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..7be97f49d
--- /dev/null
+++ b/tests/manual/qmlclient/CMakeLists.txt
@@ -0,0 +1,34 @@
+# Generated from qmlclient.pro.
+
+#####################################################################
+## qmlclient Binary:
+#####################################################################
+
+qt_add_manual_test(qmlclient
+ GUI
+ SOURCES
+ main.cpp
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ 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..10ec44511
--- /dev/null
+++ b/tests/manual/subsurface/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from subsurface.pro.
+
+#####################################################################
+## subsurface Binary:
+#####################################################################
+
+qt_add_manual_test(subsurface
+ GUI
+ SOURCES
+ main.cpp
+ shmwindow.cpp shmwindow.h
+ LIBRARIES
+ Qt::CorePrivate
+ Qt::GuiPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ 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..4186ce995
--- /dev/null
+++ b/tests/manual/texture-sharing/cpp-client/CMakeLists.txt
@@ -0,0 +1,29 @@
+# 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
+ LIBRARIES
+ Qt::GuiPrivate
+ Qt::WaylandClientPrivate
+ PUBLIC_LIBRARIES
+ Qt::Gui
+ Qt::WaylandClient
+)
+
+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"