blob: 73f233622be647b02d485144d8955be8e40aca92 [file] [log] [blame]
{
"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"
]
}