| { |
| "module": "waylandclient", |
| "condition": "module.gui", |
| "depends": [ |
| "gui-private" |
| ], |
| "testDir": "../../config.tests", |
| |
| "libraries": { |
| "wayland-client": { |
| "label": "Wayland client library", |
| "headers": "wayland-version.h", |
| "test": { |
| "main": [ |
| "#if WAYLAND_VERSION_MAJOR < 1", |
| "# error Wayland 1.8.0 or higher required", |
| "#endif", |
| "#if WAYLAND_VERSION_MAJOR == 1", |
| "# if WAYLAND_VERSION_MINOR < 8", |
| "# error Wayland 1.8.0 or higher required", |
| "# endif", |
| "# if WAYLAND_VERSION_MINOR == 8", |
| "# if WAYLAND_VERSION_MICRO < 0", |
| "# error Wayland 1.8.0 or higher required", |
| "# endif", |
| "# endif", |
| "#endif" |
| ] |
| }, |
| "sources": [ |
| { "type": "pkgConfig", "args": "wayland-client" }, |
| "-lwayland-client" |
| ] |
| }, |
| "wayland-cursor": { |
| "label": "Wayland cursor library", |
| "headers": "wayland-cursor.h", |
| "test": { |
| "main": "struct wl_cursor_image *image = 0;" |
| }, |
| "use": "wayland-client", |
| "sources": [ |
| { "type": "pkgConfig", "args": "wayland-cursor" }, |
| "-lwayland-cursor" |
| ] |
| }, |
| "wayland-egl": { |
| "label": "Wayland EGL library", |
| "headers": "wayland-egl.h", |
| "test": { |
| "main": "struct wl_egl_window *window = wl_egl_window_create(0, 100, 100);" |
| }, |
| "sources": [ |
| { "type": "pkgConfig", "args": "wayland-egl" }, |
| "-lwayland-egl", |
| "-lEGL" |
| ] |
| }, |
| "xcomposite": { |
| "label": "XComposite", |
| "headers": "X11/extensions/Xcomposite.h", |
| "test": { |
| "main": "XCompositeRedirectWindow((Display *)0,(Window) 0, CompositeRedirectManual);" |
| |
| }, |
| "sources": [ |
| { "type": "pkgConfig", "args": "xcomposite" }, |
| "-lxcomposite" |
| ] |
| }, |
| "glx": { |
| "label": "GLX", |
| "headers": "GL/glx.h", |
| "test": { |
| "main": [ |
| "Display *dpy = XOpenDisplay(0);", |
| "int items = 0;", |
| "GLXFBConfig *fbc = glXChooseFBConfig(dpy, DefaultScreen(dpy), 0 , &items);" |
| ] |
| }, |
| "sources": [ |
| { "type": "pkgConfig", "args": "x11 gl" }, |
| "-lX11 -lGl" |
| ] |
| } |
| }, |
| |
| "tests": { |
| "wayland-scanner": { |
| "label": "wayland-scanner", |
| "type": "compile", |
| "test": "wayland_scanner", |
| "use": "wayland-client" |
| }, |
| "drm-egl-server": { |
| "label": "DRM EGL Server", |
| "type": "compile", |
| "test": { |
| "include": [ |
| "EGL/egl.h", |
| "EGL/eglext.h" |
| ], |
| "main": [ |
| "#ifdef EGL_MESA_drm_image", |
| "return 0;", |
| "#else", |
| "#error Requires EGL_MESA_drm_image to be defined", |
| "return 1;", |
| "#endif" |
| ] |
| }, |
| "use": "egl" |
| }, |
| "libhybris-egl-server": { |
| "label": "libhybris EGL Server", |
| "type": "compile", |
| "test": { |
| "include": [ |
| "EGL/egl.h", |
| "EGL/eglext.h", |
| "hybris/eglplatformcommon/hybris_nativebufferext.h" |
| ], |
| "main": [ |
| "#ifdef EGL_HYBRIS_native_buffer", |
| "return 0;", |
| "#else", |
| "#error Requires EGL_HYBRIS_native_buffer to be defined", |
| "return 1;", |
| "#endif" |
| ] |
| }, |
| "use": "egl" |
| }, |
| "dmabuf-server-buffer": { |
| "label": "Linux dma-buf Buffer Sharing", |
| "type": "compile", |
| "test": { |
| "include": [ |
| "EGL/egl.h", |
| "EGL/eglext.h", |
| "drm_fourcc.h" |
| ], |
| "main": [ |
| "#ifdef EGL_LINUX_DMA_BUF_EXT", |
| "return 0;", |
| "#else", |
| "#error Requires EGL_LINUX_DMA_BUF_EXT", |
| "return 1;", |
| "#endif" |
| ] |
| }, |
| "use": "egl drm" |
| }, |
| "vulkan-server-buffer": { |
| "label": "Vulkan Buffer Sharing", |
| "type": "compile", |
| "test": { |
| "head": [ |
| "#define VK_USE_PLATFORM_WAYLAND_KHR 1" |
| ], |
| "include": [ |
| "vulkan/vulkan.h" |
| ], |
| "main": [ |
| "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;" |
| ] |
| } |
| }, |
| "egl_1_5-wayland": { |
| "label": "EGL 1.5 with Wayland Platform", |
| "type": "compile", |
| "test": { |
| "include": [ |
| "EGL/egl.h", |
| "EGL/eglext.h", |
| "wayland-client.h" |
| ], |
| "main": [ |
| "eglGetPlatformDisplay(EGL_PLATFORM_WAYLAND_EXT, (struct wl_display *)(nullptr), nullptr);" |
| ] |
| }, |
| "use": "egl" |
| } |
| }, |
| |
| "features": { |
| "wayland-client": { |
| "label": "Qt Wayland Client", |
| "condition": "!config.win32 && libs.wayland-client && libs.wayland-cursor && tests.wayland-scanner", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-datadevice": { |
| "condition": "features.draganddrop || features.clipboard", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-client-primary-selection": { |
| "label": "primary-selection clipboard", |
| "condition": "features.clipboard", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-client-fullscreen-shell-v1": { |
| "label": "fullscreen-shell-v1", |
| "condition": "features.wayland-client", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-client-ivi-shell": { |
| "label": "ivi-shell", |
| "condition": "features.wayland-client", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-client-wl-shell": { |
| "label": "wl-shell (deprecated)", |
| "condition": "features.wayland-client", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-client-xdg-shell": { |
| "label": "xdg-shell", |
| "condition": "features.wayland-client", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-client-xdg-shell-v5": { |
| "label": "xdg-shell unstable v5 (deprecated)", |
| "condition": "features.wayland-client", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-client-xdg-shell-v6": { |
| "label": "xdg-shell unstable v6", |
| "condition": "features.wayland-client", |
| "output": [ "privateFeature" ] |
| }, |
| "egl-extension-platform-wayland": { |
| "label": "EGL wayland platform extension", |
| "condition": "features.wayland-client && features.opengl && features.egl && tests.egl_1_5-wayland", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-egl": { |
| "label": "EGL", |
| "condition": "features.wayland-client && features.opengl && features.egl && libs.wayland-egl && (!config.qnx || features.egl-extension-platform-wayland)", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-brcm": { |
| "label": "Raspberry Pi", |
| "condition": "features.wayland-client && features.eglfs_brcm", |
| "output": [ "privateFeature" ] |
| }, |
| "xcomposite-egl": { |
| "label": "XComposite EGL", |
| "condition": "features.wayland-client && features.opengl && features.egl && features.xlib && libs.xcomposite && features.egl_x11", |
| "output": [ "privateFeature" ] |
| }, |
| "xcomposite-glx": { |
| "label": "XComposite GLX", |
| "condition": "features.wayland-client && features.opengl && !features.opengles2 && features.xlib && libs.xcomposite && libs.glx", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-drm-egl-server-buffer": { |
| "label": "DRM EGL", |
| "condition": "features.wayland-client && features.opengl && features.egl && tests.drm-egl-server && (!config.qnx || features.egl-extension-platform-wayland)", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-libhybris-egl-server-buffer": { |
| "label": "libhybris EGL", |
| "condition": "features.wayland-client && features.opengl && features.egl && tests.libhybris-egl-server", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-dmabuf-server-buffer": { |
| "label": "Linux dma-buf server buffer integration", |
| "condition": "features.wayland-client && features.opengl && features.egl && tests.dmabuf-server-buffer", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-vulkan-server-buffer": { |
| "label": "Vulkan-based server buffer integration", |
| "condition": "features.wayland-client && features.vulkan && features.opengl && features.egl && tests.vulkan-server-buffer", |
| "output": [ "privateFeature" ] |
| }, |
| "wayland-shm-emulation-server-buffer": { |
| "label": "Shm emulation server buffer integration", |
| "condition": "features.wayland-client && features.opengl", |
| "output": [ "privateFeature" ] |
| } |
| }, |
| |
| "report": [ |
| { |
| "type": "note", |
| "condition": "!libs.wayland-egl", |
| "message": "No wayland-egl support detected. Cross-toolkit compatibility disabled." |
| } |
| ], |
| |
| "summary": [ |
| { |
| "section": "Qt Wayland Drivers", |
| "condition": "features.wayland-client", |
| "entries": [ |
| "wayland-egl", |
| "wayland-brcm", |
| "xcomposite-egl", |
| "xcomposite-glx", |
| "wayland-drm-egl-server-buffer", |
| "wayland-libhybris-egl-server-buffer", |
| "wayland-dmabuf-server-buffer", |
| "wayland-vulkan-server-buffer", |
| "wayland-shm-emulation-server-buffer" |
| ] |
| }, |
| { |
| "section": "Qt Wayland Client Shell Integrations", |
| "condition": "features.wayland-client", |
| "entries": [ |
| "wayland-client-xdg-shell", |
| "wayland-client-xdg-shell-v5", |
| "wayland-client-xdg-shell-v6", |
| "wayland-client-ivi-shell", |
| "wayland-client-wl-shell" |
| ] |
| }, |
| "wayland-client" |
| ] |
| } |