diff options
Diffstat (limited to 'src')
57 files changed, 2497 insertions, 0 deletions
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" |