blob: 1f08795c57b4c62e6e0eeef149844e30fb3eccc0 [file] [log] [blame]
{
"module": "gui",
"depends": [
"core-private",
"network"
],
"testDir": "../../config.tests",
"commandline": {
"options": {
"accessibility": "boolean",
"angle": "boolean",
"combined-angle-lib": "boolean",
"direct2d": "boolean",
"directfb": "boolean",
"directwrite": "boolean",
"egl": "boolean",
"eglfs": "boolean",
"evdev": "boolean",
"fontconfig": "boolean",
"freetype": { "type": "enum", "values": [ "no", "qt", "system" ] },
"gbm": "boolean",
"gif": "boolean",
"harfbuzz": { "type": "enum", "values": [ "no", "qt", "system" ] },
"ico": "boolean",
"imf": { "type": "boolean", "name": "qqnx_imf" },
"kms": "boolean",
"lgmon": "boolean",
"libinput": "boolean",
"libjpeg": { "type": "enum", "values": [ "no", "qt", "system" ] },
"libmd4c": { "type": "enum", "values": [ "no", "qt", "system" ] },
"libpng": { "type": "enum", "values": [ "no", "qt", "system" ] },
"linuxfb": "boolean",
"mtdev": "boolean",
"opengl": { "type": "optionalString", "values": [ "no", "yes", "desktop", "es2", "dynamic" ] },
"opengl-es-2": { "type": "void", "name": "opengl", "value": "es2" },
"opengles3": "boolean",
"openvg": "boolean",
"qpa": { "type": "string", "name": "qpa_default_platform" },
"qpa-platform-guard": "boolean",
"sm": { "type": "boolean", "name": "sessionmanager" },
"tslib": "boolean",
"vulkan": "boolean",
"xcb": "boolean",
"bundled-xcb-xinput": "boolean",
"xcb-native-painting": "boolean",
"xcb-xlib": "boolean",
"xkbcommon": "boolean"
}
},
"libraries": {
"atspi": {
"label": "atspi",
"sources": [
{ "type": "pkgConfig", "args": "atspi-2" }
]
},
"bcm_host": {
"export": "",
"headers": ["bcm_host.h"],
"sources": [
{ "type": "pkgConfig", "args": "bcm_host" },
{ "type": "makeSpec", "spec": "BCM_HOST" }
]
},
"dxguid": {
"label": "DirectX GUID",
"sources": [
"-ldxguid"
]
},
"dxgi": {
"label": "DirectX GI",
"headers": "dxgi.h",
"sources": [
"-ldxgi"
]
},
"dxgi1_2": {
"label": "DirectX GI 1.2",
"test": {
"main": [
"// fails with mingw-w64 5.4.0 - declaration is missing from header",
"IDXGISurface1 *surface;",
"(void) surface;"
]
},
"headers": "dxgi1_2.h",
"sources": [
"-ldxgi"
]
},
"d3d9": {
"label": "Direct3D 9",
"headers": "d3d9.h",
"sources": [
"-ld3d9"
]
},
"d3d11": {
"label": "Direct3D 11",
"headers": "d3d11.h",
"sources": [
"-ld3d11"
]
},
"d3d11_1": {
"label": "Direct3D 11.1",
"headers": "d3d11_1.h",
"sources": [
"-ld3d11"
]
},
"d3dcompiler": {
"label": "Direct3D Shader Compiler Library",
"headers": "d3dcompiler.h",
"sources": [
"-ld3dcompiler"
]
},
"d2d1": {
"label": "Direct2D 1",
"headers": [ "d2d1.h", "d2d1helper.h" ],
"sources": [
"-ld2d1"
]
},
"d2d1_1": {
"label": "Direct2D 1.1",
"test": {
"main": [
"ID2D1Factory1 *d2dFactory;",
"D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &d2dFactory);"
]
},
"headers": [ "d2d1_1.h", "d2d1_1helper.h" ],
"sources": [
"-ld2d1"
]
},
"directfb": {
"label": "DirectFB",
"test": {
"tail": [
"#ifdef __typeof__",
"# error DirectFB headers are unclean and cannot compile",
"#endif"
]
},
"headers": "directfb.h",
"sources": [
{ "type": "pkgConfig", "args": "directfb" }
]
},
"dwrite": {
"label": "DirectWrite",
"test": {
"main": [
"IDWriteFactory *factory = 0;",
"DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory),",
" (IUnknown **)(&factory));"
]
},
"headers": "dwrite.h",
"sources": [
"-ldwrite"
]
},
"dwrite_1": {
"label": "DirectWrite 1",
"headers": "dwrite_1.h",
"sources": [
"-ldwrite"
]
},
"dwrite_2": {
"label": "DirectWrite 2",
"test": {
"main": [
"IUnknown *factory = 0;",
"(void)(size_t(DWRITE_E_NOCOLOR) + sizeof(IDWriteFontFace2));",
"DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory2),",
" &factory);"
]
},
"headers": "dwrite_2.h",
"sources": [
"-ldwrite"
]
},
"drm": {
"label": "KMS",
"test": {
"head": [
"#include <stdlib.h>",
"#include <stdint.h>",
"extern \"C\" {"
],
"tail": [
"}"
],
"main": "(void) drmModeGetCrtc(0, 0);"
},
"headers": [ "xf86drmMode.h", "xf86drm.h" ],
"sources": [
{ "type": "pkgConfig", "args": "libdrm" },
{ "libs": "-ldrm", "condition": "!config.integrity" },
{ "libs": "-ldrm-nvdc -lposix -livfs -lnvll -lnvdc -lnvrm -lnvrm_graphics -lnvos -lnvtegrahv", "condition": "config.integrity" }
]
},
"egl": {
"label": "EGL",
"test": {
"main": [
"EGLint x = 0; EGLDisplay dpy = 0; EGLContext ctx = 0;",
"eglDestroyContext(dpy, ctx);"
]
},
"headers": "EGL/egl.h",
"sources": [
{ "type": "pkgConfig", "args": "egl" },
{ "type": "makeSpec", "spec": "EGL" }
]
},
"freetype": {
"label": "FreeType",
"test": {
"tail": [
"#include FT_FREETYPE_H",
"#if ((FREETYPE_MAJOR*10000 + FREETYPE_MINOR*100 + FREETYPE_PATCH) < 20200)",
"# error This version of freetype is too old.",
"#endif"
],
"main": [
"FT_Face face = 0;"
]
},
"headers": "ft2build.h",
"sources": [
{ "type": "pkgConfig", "args": "freetype2" },
{ "type": "freetype", "libs": "-lfreetype", "condition": "!config.wasm" },
{ "libs": "-s USE_FREETYPE=1", "condition": "config.wasm" },
{ "libs": "-lfreetype" }
],
"use": [
{ "lib": "zlib", "condition": "features.system-zlib" }
]
},
"fontconfig": {
"label": "Fontconfig",
"test": {
"tail": [
"#ifndef FC_RGBA_UNKNOWN",
"# error This version of fontconfig is too old, it is missing the FC_RGBA_UNKNOWN define",
"#endif"
],
"main": [
"FcPattern *pattern = 0;"
]
},
"headers": "fontconfig/fontconfig.h",
"sources": [
{ "type": "pkgConfig", "args": "fontconfig" },
{ "type": "freetype", "libs": "-lfontconfig" }
],
"use": "freetype"
},
"gbm": {
"label": "GBM",
"test": {
"head": [
"#include <stdlib.h>",
"#include <stdint.h>",
"extern \"C\" {"
],
"tail": [
"}"
],
"main": "gbm_surface *surface = 0;"
},
"headers": "gbm.h",
"sources": [
{ "type": "pkgConfig", "args": "gbm" }
]
},
"harfbuzz": {
"label": "HarfBuzz",
"test": {
"tail": [
"#if !HB_VERSION_ATLEAST(1, 6, 0)",
"# error This version of harfbuzz is too old.",
"#endif"
],
"main": [
"hb_buffer_t *buffer = hb_buffer_create();",
"const uint16_t string[] = { 'A', 'b', 'c' };",
"hb_buffer_add_utf16(buffer, string, 3, 0, 3);",
"hb_buffer_guess_segment_properties(buffer);",
"hb_buffer_set_flags(buffer, hb_buffer_flags_t(HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES));",
"hb_buffer_destroy(buffer);"
]
},
"headers": "harfbuzz/hb.h",
"sources": [
"-lharfbuzz"
]
},
"imf": {
"label": "IMF",
"export": "",
"test": {
"main": "imf_client_init();"
},
"headers": "imf/imf_client.h",
"sources": [
"-linput_client"
]
},
"lgmon": {
"label": "lgmon",
"test": {
"main": "lgmon_supported(getpid());"
},
"headers": "lgmon.h",
"sources": [
"-llgmon"
]
},
"libinput": {
"label": "libinput",
"test": {
"main": "libinput_udev_create_context(NULL, NULL, NULL);"
},
"headers": "libinput.h",
"sources": [
{ "type": "pkgConfig", "args": "libinput" }
]
},
"integrityhid": {
"label": "integrityhid",
"test": {
"head": [
"#include <stdlib.h>",
"#include <stdint.h>"
],
"main": [
"HIDDriver *driver;",
"uintptr_t devicecontext;",
"uint32_t device_id;",
"gh_hid_enum_devices(driver, &device_id, &devicecontext);"
]
},
"headers": "device/hiddriver.h",
"sources": [
{ "libs": "-lhiddev -lusbhid -lusb" }
]
},
"libjpeg": {
"label": "libjpeg",
"test": {
"head": [
"#include <sys/types.h>",
"#include <stdio.h>",
"extern \"C\" {"
],
"tail": [
"}",
"",
"j_compress_ptr cinfo;"
],
"main": "jpeg_create_compress(cinfo);"
},
"headers": "jpeglib.h",
"sources": [
{ "type": "pkgConfig", "args": "libjpeg" },
{ "libs": "-llibjpeg", "condition": "config.msvc" },
"-ljpeg"
]
},
"libmd4c": {
"label": "libmd4c",
"test": {
"main": "md_parse(\"hello\", 5, nullptr, nullptr);"
},
"headers": "md4c.h",
"sources": [
{ "type": "pkgConfig", "args": "md4c" },
{ "libs": "-lmd4c" }
]
},
"libpng": {
"label": "libpng",
"test": {
"main": "(void) png_create_read_struct(PNG_LIBPNG_VER_STRING,0,0,0);"
},
"headers": "png.h",
"sources": [
{ "type": "pkgConfig", "args": "libpng" },
{ "libs": "-llibpng16", "condition": "config.msvc" },
{ "libs": "-llibpng", "condition": "config.msvc" },
{ "libs": "-lpng16", "condition": "!config.msvc" },
{ "libs": "-lpng", "condition": "!config.msvc" },
{ "libs": "-s USE_LIBPNG=1", "condition": "config.wasm" }
],
"use": [
{ "lib": "zlib", "condition": "features.system-zlib" }
]
},
"mtdev": {
"label": "mtdev",
"test": {
"main": [
"mtdev m;",
"mtdev_open(&m, 0);"
]
},
"headers": "mtdev.h",
"sources": [
{ "type": "pkgConfig", "args": "mtdev" }
]
},
"opengl": {
"label": "Desktop OpenGL",
"test": {
"head": [
"#ifdef __APPLE__",
"# include <OpenGL/gl.h>",
"#else",
"# define GL_GLEXT_PROTOTYPES",
"#endif"
],
"main": [
"glBegin(GL_TRIANGLES);",
" glVertex2f(20.0f, 10.0f);",
" glVertex2f(10.0f, 30.0f);",
" glVertex2f(20.0f, 50.0f);",
"glEnd();"
]
},
"headers": [
{
"condition": "!config.darwin",
"headers": "GL/gl.h"
}
],
"sources": [
{ "type": "pkgConfig", "args": "gl", "condition": "!config.darwin" },
{ "type": "makeSpec", "spec": "OPENGL" }
]
},
"opengl_es2": {
"label": "OpenGL ES 2.0",
"test": {
"head": [
"#ifdef __APPLE__",
"# include <OpenGLES/ES2/gl.h>",
"#else",
"# define GL_GLEXT_PROTOTYPES",
"#endif"
],
"main": [
"glUniform1f(1, GLfloat(1.0));",
"glClear(GL_COLOR_BUFFER_BIT);"
]
},
"headers": [
{
"condition": "!config.darwin",
"headers": "GLES2/gl2.h"
}
],
"sources": [
{ "type": "pkgConfig", "args": "glesv2", "condition": "!config.darwin" },
{ "type": "makeSpec", "spec": "OPENGL_ES2" }
]
},
"openvg": {
"label": "OpenVG",
"test": {
"main": "VGint i = 2; vgFlush();"
},
"headers": "VG/openvg.h",
"sources": [
{ "type": "pkgConfig", "args": "vg" },
{ "type": "makeSpec", "spec": "OPENVG" }
]
},
"tslib": {
"label": "tslib",
"test": {
"main": "ts_setup(nullptr, 0);"
},
"headers": "tslib.h",
"sources": [
"-lts"
]
},
"v4l2": {
"label": "V4L2",
"test": {
"head": [
"#include <cstddef>",
"extern \"C\" {"
],
"tail": [
"}"
],
"main": [
"v4l2_format fmt;",
"media_pad *pad = nullptr;",
"media_device *device = media_device_new(\"/dev/media\");",
"v4l2_subdev_set_format(nullptr, nullptr, 0, V4L2_SUBDEV_FORMAT_ACTIVE);"
]
},
"headers": [ "mediactl/mediactl.h", "mediactl/v4l2subdev.h" ],
"sources": [
{ "type": "pkgConfig", "args": "libv4l2 libmediactl" },
"-lmediactl -lv4l2 -lv4l2subdev"
]
},
"vulkan": {
"label": "Vulkan",
"test": {
"comment": "Note: Qt does not rely on linking to a Vulkan library directly.",
"tail": [
"// The pData parameter has changed from uint32_t* to void* at some point.",
"// Ensure the headers have the updated one to prevent compile errors later on.",
"PFN_vkCmdUpdateBuffer cmdUpdBuf;",
"void testUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData)",
"{",
" cmdUpdBuf(commandBuffer, dstBuffer, dstOffset, dataSize, pData);",
"}"
],
"main": [
"VkInstanceCreateInfo info;",
"testUpdateBuffer(0, 0, 0, 0, 0);"
]
},
"headers": "vulkan/vulkan.h",
"sources": [
{ "type": "pkgConfig", "args": "vulkan" },
{ "type": "makeSpec", "spec": "VULKAN" }
]
},
"wayland_server": {
"label": "Wayland Server",
"test": {
"main": "wl_display_create();"
},
"headers": "wayland-server.h",
"sources": [
{ "type": "pkgConfig", "args": "wayland-server" }
]
},
"xlib": {
"label": "XLib",
"test": {
"main": [
"Display *d = XOpenDisplay(NULL);",
"XCloseDisplay(d);"
]
},
"headers": "X11/Xlib.h",
"sources": [
{ "type": "makeSpec", "spec": "X11" }
]
},
"x11sm": {
"label": "X11 session management",
"sources": [
{ "type": "pkgConfig", "args": "sm ice" }
]
},
"xcb": {
"label": "XCB >= 1.11",
"test": {
"main": [
"int primaryScreen = 0;",
"(void)xcb_connect(\"\", &primaryScreen);",
"/* XCB_PACKED define was added in libxcb 1.11 */",
"#ifdef XCB_PACKED",
" return 0;",
"#else",
" return -1;",
"#endif"
]
},
"headers": "xcb/xcb.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb >= 1.11" },
"-lxcb"
]
},
"xcb_icccm": {
"label": "XCB ICCCM >= 0.3.9",
"headers": "xcb/xcb_icccm.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-icccm >= 0.3.9" },
"-lxcb-icccm"
],
"use": "xcb"
},
"xcb_image": {
"label": "XCB Image >= 0.3.9",
"headers": "xcb/xcb_image.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-image >= 0.3.9" },
"-lxcb-image"
],
"use": "xcb_shm xcb"
},
"xcb_keysyms": {
"label": "XCB Keysyms >= 0.3.9",
"headers": "xcb/xcb_keysyms.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-keysyms >= 0.3.9" },
"-lxcb-keysyms"
],
"use": "xcb"
},
"xcb_renderutil": {
"label": "XCB Renderutil >= 0.3.9",
"headers": "xcb/xcb_renderutil.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-renderutil >= 0.3.9" },
"-lxcb-render-util"
],
"use": "xcb xcb_render"
},
"xcb_randr": {
"label": "XCB RandR",
"headers": "xcb/randr.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-randr" },
"-lxcb-randr"
],
"use": "xcb"
},
"xcb_shape": {
"label": "XCB Shape",
"headers": "xcb/shape.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-shape" },
"-lxcb-shape"
],
"use": "xcb"
},
"xcb_shm": {
"label": "XCB SHM",
"headers": "xcb/shm.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-shm" },
"-lxcb-shm"
],
"use": "xcb"
},
"xcb_sync": {
"label": "XCB Sync",
"headers": "xcb/sync.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-sync" },
"-lxcb-sync"
],
"use": "xcb"
},
"xcb_xfixes": {
"label": "XCB Xfixes",
"headers": "xcb/xfixes.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-xfixes" },
"-lxcb-xfixes"
],
"use": "xcb"
},
"xcb_xinerama": {
"label": "XCB Xinerama",
"headers": "xcb/xinerama.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-xinerama" },
"-lxcb-xinerama"
],
"use": "xcb"
},
"xcb_xlib": {
"label": "XCB Xlib",
"test": {
"main": "(void) XGetXCBConnection((Display *)0);"
},
"headers": "X11/Xlib-xcb.h",
"sources": [
{ "type": "pkgConfig", "args": "x11-xcb" },
"-lX11-xcb"
],
"use": "xcb xlib"
},
"xcb_xkb": {
"label": "XCB XKB",
"headers": "xcb/xkb.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-xkb" },
"-lxcb-xkb"
],
"use": "xcb"
},
"xcb_render": {
"label": "XCB XRender",
"headers": "xcb/render.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-render" },
"-lxcb-render"
],
"use": "xcb"
},
"xcb_glx": {
"label": "XCB GLX",
"test": {
"main": [
"xcb_connection_t *connection = 0;",
"xcb_generic_error_t *error = 0;",
"xcb_glx_query_version_cookie_t xglx_query_cookie = xcb_glx_query_version(",
" connection, XCB_GLX_MAJOR_VERSION, XCB_GLX_MINOR_VERSION);",
"xcb_glx_query_version_reply(connection, xglx_query_cookie, &error);"
]
},
"headers": "xcb/glx.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-glx" },
"-lxcb-glx"
],
"use": "xcb"
},
"xcb_xinput": {
"label": "XCB XInput",
"test": {
"main": [
"xcb_connection_t *connection = 0;",
"xcb_generic_error_t *error = 0;",
"xcb_input_xi_query_version_cookie_t xinput_query_cookie = xcb_input_xi_query_version(",
" connection, XCB_INPUT_MAJOR_VERSION, XCB_INPUT_MINOR_VERSION);",
"xcb_input_xi_query_version_reply(connection, xinput_query_cookie, &error);"
]
},
"headers": "xcb/xinput.h",
"sources": [
{ "type": "pkgConfig", "args": "xcb-xinput >= 1.12" },
"-lxcb-xinput"
],
"use": "xcb"
},
"xkbcommon": {
"label": "xkbcommon >= 0.5.0",
"test": {
"main": "xkb_context_new(XKB_CONTEXT_NO_FLAGS);"
},
"headers": [ "xkbcommon/xkbcommon.h" ],
"sources": [
{ "type": "pkgConfig", "args": "xkbcommon >= 0.5.0" },
"-lxkbcommon"
]
},
"xkbcommon_x11": {
"label": "xkbcommon-x11",
"test": {
"main": "xkb_x11_setup_xkb_extension_flags flag = XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS;"
},
"headers": [ "xkbcommon/xkbcommon-x11.h" ],
"sources": [
{ "type": "pkgConfig", "args": "xkbcommon-x11" },
"-lxkbcommon -lxkbcommon-x11"
]
},
"xrender": {
"label": "XRender for native painting",
"test": {
"tail": [
"#if RENDER_MAJOR == 0 && RENDER_MINOR < 5",
"# error Required Xrender version 0.6 not found.",
"#endif"
],
"main": "XRenderPictFormat *format = 0;"
},
"headers": "X11/extensions/Xrender.h",
"sources": [
"-lXrender"
],
"use": "xlib"
}
},
"tests": {
"angle_d3d11_qdtd": {
"label": "D3D11_QUERY_DATA_TIMESTAMP_DISJOINT",
"type": "compile",
"test": {
"include": "d3d11.h",
"main": [
"D3D11_QUERY_DATA_TIMESTAMP_DISJOINT qdtd;",
"(void) qdtd;"
]
}
},
"fxc": {
"label": "Direct3D Shader Compiler",
"type": "fxc",
"log": "value"
},
"drm_atomic": {
"label": "DRM Atomic API",
"type": "compile",
"test": {
"head": [
"#include <stdlib.h>",
"#include <stdint.h>",
"extern \"C\" {"
],
"include": [
"xf86drmMode.h",
"xf86drm.h"
],
"tail": [
"}"
],
"main": "drmModeAtomicReq *request;"
},
"use": "drm"
},
"egl-x11": {
"label": "EGL on X11",
"type": "compile",
"test": {
"head": [
"// Check if EGL is compatible with X. Some EGL implementations, typically on",
"// embedded devices, are not intended to be used together with X. EGL support",
"// has to be disabled in plugins like xcb in this case since the native display,",
"// window and pixmap types will be different than what an X-based platform",
"// plugin would expect."
],
"include": [ "EGL/egl.h", "X11/Xlib.h" ],
"main": [
"Display *dpy = EGL_DEFAULT_DISPLAY;",
"EGLNativeDisplayType egldpy = XOpenDisplay(\"\");",
"dpy = egldpy;",
"EGLNativeWindowType w = XCreateWindow(dpy, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);",
"XDestroyWindow(dpy, w);",
"XCloseDisplay(dpy);"
]
},
"use": "egl xlib"
},
"egl-brcm": {
"label": "Broadcom EGL (Raspberry Pi)",
"type": "compile",
"test": {
"include": [ "EGL/egl.h", "bcm_host.h" ],
"main": "vc_dispmanx_display_open(0);"
},
"use": "egl bcm_host"
},
"egl-egldevice": {
"label": "EGLDevice",
"type": "compile",
"test": {
"include": [ "EGL/egl.h", "EGL/eglext.h" ],
"main": [
"EGLDeviceEXT device = 0;",
"EGLStreamKHR stream = 0;",
"EGLOutputLayerEXT layer = 0;",
"(void) EGL_DRM_CRTC_EXT;"
]
},
"use": "egl"
},
"egl-mali": {
"label": "Mali EGL",
"type": "compile",
"test": {
"include": [ "EGL/fbdev_window.h", "EGL/egl.h", "GLES2/gl2.h" ],
"main": "fbdev_window *w = 0;"
},
"use": "egl"
},
"egl-mali-2": {
"label": "Mali 2 EGL",
"type": "compile",
"test": {
"include": [ "EGL/egl.h", "GLES2/gl2.h" ],
"main": "mali_native_window *w = 0;"
},
"use": "egl"
},
"egl-viv": {
"label": "i.Mx6 EGL",
"type": "compile",
"test": {
"include": [ "EGL/egl.h", "EGL/eglvivante.h" ],
"main": [
"#ifdef __INTEGRITY",
"fbGetDisplay();",
"#else",
"// Do not rely on fbGetDisplay(), since the signature has changed over time.",
"// Stick to fbGetDisplayByIndex().",
"fbGetDisplayByIndex(0);",
"#endif"
],
"qmake": [
"DEFINES += EGL_API_FB=1",
"!integrity: DEFINES += LINUX=1"
]
},
"use": "egl"
},
"egl-openwfd": {
"label": "OpenWFD EGL",
"type": "compile",
"test": {
"include": [ "wfd.h" ],
"main": [
"wfdEnumerateDevices(nullptr, 0, nullptr);"
]
},
"use": "egl"
},
"egl-rcar": {
"label": "RCAR EGL",
"type": "compile",
"test": {
"include": [ "EGL/egl.h" ],
"tail": [
"extern \"C\" {",
"extern unsigned long PVRGrfxServerInit(void);",
"}"
],
"main": [
"PVRGrfxServerInit();"
]
},
"use": "egl opengl_es2"
},
"evdev": {
"label": "evdev",
"type": "compile",
"test": {
"head": [
"#if defined(__FreeBSD__)",
"# include <dev/evdev/input.h>",
"#else",
"# include <linux/input.h>",
"# include <linux/kd.h>",
"#endif",
"enum {",
" e1 = ABS_PRESSURE,",
" e2 = ABS_X,",
" e3 = REL_X,",
" e4 = SYN_REPORT,",
"};"
],
"main": [
"input_event buf[32];",
"(void) buf;"
]
}
},
"integrityfb": {
"label": "INTEGRITY framebuffer",
"type": "compile",
"test": {
"include": "device/fbdriver.h",
"main": "FBDriver *driver = 0;"
}
},
"libinput_axis_api": {
"label": "axis API in libinput",
"type": "compile",
"test": {
"include": "libinput.h",
"main": "libinput_event_pointer_has_axis(nullptr, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL);"
},
"use": "libinput"
},
"linuxfb": {
"label": "LinuxFB",
"type": "compile",
"test": {
"include": [ "linux/fb.h", "sys/kd.h", "sys/ioctl.h" ],
"main": [
"fb_fix_screeninfo finfo;",
"fb_var_screeninfo vinfo;",
"int fd = 3;",
"ioctl(fd, FBIOGET_FSCREENINFO, &finfo);",
"ioctl(fd, FBIOGET_VSCREENINFO, &vinfo);"
]
}
},
"opengles3": {
"label": "OpenGL ES 3.0",
"type": "compile",
"test": {
"head": [
"#ifdef __APPLE__",
"# include <OpenGLES/ES3/gl.h>",
"#else",
"# define GL_GLEXT_PROTOTYPES",
"# include <GLES3/gl3.h>",
"#endif"
],
"main": [
"static GLfloat f[6];",
"glGetStringi(GL_EXTENSIONS, 0);",
"glReadBuffer(GL_COLOR_ATTACHMENT1);",
"glUniformMatrix2x3fv(0, 0, GL_FALSE, f);",
"glMapBufferRange(GL_ARRAY_BUFFER, 0, 0, GL_MAP_READ_BIT);"
]
},
"comment": [
"The library is expected to be the same as in ES 2.0 (libGLESv2).",
"The difference is the header and the presence of the functions in",
"the library."
],
"use": "opengl_es2"
},
"opengles31": {
"label": "OpenGL ES 3.1",
"type": "compile",
"test": {
"include": "GLES3/gl31.h",
"main": [
"glDispatchCompute(1, 1, 1);",
"glProgramUniform1i(0, 0, 0);"
]
},
"use": "opengl_es2"
},
"opengles32": {
"label": "OpenGL ES 3.2",
"type": "compile",
"test": {
"include": "GLES3/gl32.h",
"main": "glFramebufferTexture(GL_TEXTURE_2D, GL_DEPTH_STENCIL_ATTACHMENT, 1, 0);"
},
"use": "opengl_es2"
},
"qpa_default_platform": {
"label": "default QPA platform",
"type": "qpaDefaultPlatform",
"log": "value"
},
"xcb_syslibs": {
"label": "XCB (extensions)",
"type": "compile",
"test": {
"head": [
"// xkb.h is using a variable called 'explicit', which is a reserved keyword in C++",
"#define explicit dont_use_cxx_explicit"
],
"tail": "#undef explicit",
"include": [
"xcb/xcb.h",
"xcb/xcb_image.h",
"xcb/xcb_keysyms.h",
"xcb/randr.h",
"xcb/render.h",
"xcb/shape.h",
"xcb/shm.h",
"xcb/sync.h",
"xcb/xfixes.h",
"xcb/xinerama.h",
"xcb/xcb_icccm.h",
"xcb/xcb_renderutil.h",
"xcb/xkb.h"
],
"main": [
"int primaryScreen = 0;",
"xcb_connection_t *c = xcb_connect(\"\", &primaryScreen);",
"/* RENDER */",
"xcb_generic_error_t *error = nullptr;",
"xcb_render_query_pict_formats_cookie_t formatsCookie =",
" xcb_render_query_pict_formats(c);",
"xcb_render_query_pict_formats_reply_t *formatsReply =",
" xcb_render_query_pict_formats_reply(c, formatsCookie, &error);",
"/* RENDERUTIL: xcb_renderutil.h include won't compile unless version >= 0.3.9 */",
"xcb_render_util_find_standard_format(nullptr, XCB_PICT_STANDARD_ARGB_32);",
"/* XKB: This takes more arguments in xcb-xkb < 1.11 */",
"xcb_xkb_get_kbd_by_name_replies_key_names_value_list_sizeof(nullptr, 0, 0, 0, 0, 0, 0, 0, 0);"
]
},
"use": "xcb_icccm xcb_image xcb_keysyms xcb_randr xcb_render xcb_renderutil xcb_shape xcb_shm xcb_sync xcb_xfixes xcb_xinerama xcb_xkb xcb"
},
"x11prefix": {
"label": "X11 prefix",
"type": "getPkgConfigVariable",
"pkg-config-args": "x11",
"pkg-config-variable": "prefix",
"value": "/usr",
"log": "value"
}
},
"features": {
"accessibility-atspi-bridge": {
"label": "ATSPI Bridge",
"condition": "features.accessibility && features.xcb && features.dbus && libs.atspi",
"output": [ "privateFeature", "feature" ]
},
"angle": {
"label": "ANGLE",
"autoDetect": "features.opengles2 || features.opengl-dynamic",
"condition": "!features.opengl-desktop && features.dxguid && tests.fxc && (features.direct3d9 || (config.winrt && features.direct3d11 && libs.d3dcompiler))",
"output": [
"publicFeature",
{ "type": "define", "name": "QT_OPENGL_ES_2_ANGLE" },
{ "type": "varAssign", "name": "QMAKE_FXC_LOCATION", "value": "tests.fxc.value" }
]
},
"angle_d3d11_qdtd": {
"label": "D3D11_QUERY_DATA_TIMESTAMP_DISJOINT",
"condition": "features.angle && tests.angle_d3d11_qdtd",
"output": [ "privateFeature" ]
},
"combined-angle-lib": {
"label": "Combined ANGLE Library",
"autoDetect": false,
"condition": "features.angle",
"output": [ "publicFeature" ]
},
"directfb": {
"label": "DirectFB",
"section": "Platform plugins",
"autoDetect": false,
"condition": "libs.directfb",
"output": [ "privateFeature" ]
},
"directwrite": {
"label": "DirectWrite",
"emitIf": "config.win32",
"condition": "libs.dwrite",
"output": [ "privateFeature" ]
},
"directwrite1": {
"label": "DirectWrite 1",
"emitIf": "config.win32",
"condition": "libs.dwrite_1",
"output": [ "privateFeature" ]
},
"directwrite2": {
"label": "DirectWrite 2",
"emitIf": "config.win32",
"condition": "features.directwrite1 && libs.dwrite_2",
"output": [ "privateFeature" ]
},
"dxguid": {
"label": "DirectX GUID",
"condition": "config.win32 && libs.dxguid",
"output": [ "privateFeature" ]
},
"direct3d9": {
"label": "Direct 3D 9",
"condition": "config.win32 && !config.winrt && libs.d3d9",
"output": [ "privateFeature" ]
},
"dxgi": {
"label": "DirectX GI",
"condition": "config.win32 && libs.dxgi",
"output": [ "privateFeature" ]
},
"dxgi1_2": {
"label": "DirectX GI 1.2",
"condition": "features.dxgi && libs.dxgi1_2",
"output": [ "privateFeature" ]
},
"direct3d11": {
"label": "Direct 3D 11",
"condition": "features.dxgi && libs.d3d11",
"output": [ "privateFeature" ]
},
"direct3d11_1": {
"label": "Direct 3D 11.1",
"condition": "features.direct3d11 && features.dxgi1_2 && libs.d3d11_1",
"output": [ "privateFeature" ]
},
"direct2d": {
"label": "Direct 2D",
"condition": "config.win32 && !config.winrt && features.direct3d11 && libs.d2d1",
"output": [ "privateFeature" ]
},
"direct2d1_1": {
"label": "Direct 2D 1.1",
"condition": "features.direct2d && libs.d2d1_1",
"output": [ "privateFeature" ]
},
"evdev": {
"label": "evdev",
"condition": "features.thread && tests.evdev",
"output": [ "privateFeature" ]
},
"freetype": {
"label": "FreeType",
"purpose": "Supports the FreeType 2 font engine (and its supported font formats).",
"section": "Fonts",
"output": [ "privateFeature", "feature" ]
},
"system-freetype": {
"label": " Using system FreeType",
"enable": "input.freetype == 'system'",
"disable": "input.freetype == 'qt'",
"autoDetect": "!config.msvc",
"condition": "features.freetype && libs.freetype",
"output": [ "privateFeature" ]
},
"fontconfig": {
"label": "Fontconfig",
"autoDetect": "!config.darwin",
"condition": "!config.msvc && features.system-freetype && libs.fontconfig",
"output": [ "privateFeature", "feature" ]
},
"gbm": {
"label": "GBM",
"condition": "libs.gbm",
"output": [ "publicQtConfig" ]
},
"harfbuzz": {
"label": "HarfBuzz",
"output": [ "privateFeature", "feature" ]
},
"system-harfbuzz": {
"label": " Using system HarfBuzz",
"enable": "input.harfbuzz == 'system'",
"disable": "input.harfbuzz == 'qt'",
"autoDetect": "!config.darwin && !config.win32",
"condition": "features.harfbuzz && libs.harfbuzz",
"output": [ "privateFeature" ]
},
"qqnx_imf": {
"label": "IMF",
"emitIf": "config.qnx",
"condition": "libs.imf",
"output": [ "privateFeature" ]
},
"integrityfb": {
"label": "INTEGRITY framebuffer",
"section": "Platform plugins",
"condition": "config.integrity && tests.integrityfb",
"output": [ "privateFeature" ]
},
"kms": {
"label": "KMS",
"condition": "libs.drm",
"output": [ "publicQtConfig", "privateFeature" ]
},
"drm_atomic": {
"label": "DRM Atomic API",
"condition": "libs.drm && tests.drm_atomic",
"output": [ "privateFeature" ]
},
"libinput": {
"label": "libinput",
"condition": "features.libudev && libs.libinput",
"output": [ "privateFeature" ]
},
"integrityhid": {
"label": "INTEGRITY HID",
"condition": "config.integrity && libs.integrityhid",
"output": [ "privateFeature" ]
},
"libinput-axis-api": {
"label": "axis API in libinput",
"condition": "features.libinput && tests.libinput_axis_api",
"output": [ "privateFeature" ]
},
"lgmon": {
"label": "lgmon",
"emitIf": "config.qnx",
"condition": "libs.lgmon",
"output": [ "privateConfig" ]
},
"linuxfb": {
"label": "LinuxFB",
"section": "Platform plugins",
"condition": "tests.linuxfb && features.regularexpression",
"output": [ "privateFeature" ]
},
"vsp2": {
"label": "VSP2",
"condition": "libs.v4l2",
"autoDetect": false,
"output": [ "privateFeature" ]
},
"vnc": {
"label": "VNC",
"section": "Platform plugins",
"condition": [
"config.unix && !config.android && !config.darwin && !config.wasm",
"features.regularexpression && features.network"
],
"output": [ "privateFeature" ]
},
"mtdev": {
"label": "mtdev",
"condition": "libs.mtdev",
"output": [ "privateFeature" ]
},
"opengles2": {
"label": "OpenGL ES 2.0",
"enable": "input.opengl == 'es2' || input.angle == 'yes'",
"disable": "input.opengl == 'desktop' || input.opengl == 'dynamic' || input.opengl == 'no'",
"condition": "(config.win32 && !features.opengl-dynamic) || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)",
"output": [
"publicFeature",
"publicQtConfig",
{ "type": "define", "name": "QT_OPENGL_ES" },
{ "type": "define", "name": "QT_OPENGL_ES_2" }
]
},
"opengles3": {
"label": "OpenGL ES 3.0",
"condition": "features.opengles2 && !features.angle && tests.opengles3",
"output": [
"publicFeature",
{ "type": "define", "name": "QT_OPENGL_ES_3" }
]
},
"opengles31": {
"label": "OpenGL ES 3.1",
"condition": "features.opengles3 && tests.opengles31",
"output": [
"publicFeature",
{ "type": "define", "name": "QT_OPENGL_ES_3_1" }
]
},
"opengles32": {
"label": "OpenGL ES 3.2",
"condition": "features.opengles31 && tests.opengles32",
"output": [
"publicFeature",
{ "type": "define", "name": "QT_OPENGL_ES_3_2" }
]
},
"opengl-desktop": {
"label": "Desktop OpenGL",
"autoDetect": "!config.win32",
"enable": "input.opengl == 'desktop'",
"disable": "input.opengl == 'es2' || input.opengl == 'dynamic' || input.opengl == 'no'",
"condition": "(config.win32 && !config.winrt && !features.opengles2 && (config.msvc || libs.opengl))
|| (!config.watchos && !config.win32 && !config.wasm && libs.opengl)"
},
"opengl-dynamic": {
"label": "Dynamic OpenGL",
"disable": "input.angle == 'yes' || input.opengl == 'no' || input.opengl == 'desktop'",
"condition": "config.win32 && !config.winrt",
"output": [
{ "type": "publicFeature", "name": "dynamicgl" },
{ "type": "define", "name": "QT_OPENGL_DYNAMIC" }
]
},
"opengl": {
"label": "OpenGL",
"condition": "features.opengl-desktop || features.opengl-dynamic || features.opengles2",
"output": [ "publicFeature", "feature" ]
},
"vkgen": {
"label": "vkgen",
"condition": "features.xmlstreamreader",
"output": [ "privateFeature" ]
},
"vulkan": {
"label": "Vulkan",
"condition": "features.vkgen && libs.vulkan",
"output": [ "publicFeature" ]
},
"openvg": {
"label": "OpenVG",
"condition": "libs.openvg",
"output": [ "publicFeature" ]
},
"egl": {
"label": "EGL",
"condition": "(features.opengl || features.openvg) && (features.angle || libs.egl) && (features.dlopen || !config.unix || config.integrity)",
"output": [ "privateFeature", "feature" ]
},
"egl_x11": {
"label": "EGL on X11",
"condition": "features.thread && features.egl && tests.egl-x11",
"output": [ "privateFeature" ]
},
"eglfs": {
"label": "EGLFS",
"section": "Platform plugins",
"condition": "!config.android && !config.darwin && !config.win32 && !config.wasm && features.egl",
"output": [ "privateFeature" ]
},
"eglfs_brcm": {
"label": "EGLFS Raspberry Pi",
"condition": "features.eglfs && tests.egl-brcm",
"output": [ "privateFeature" ]
},
"eglfs_egldevice": {
"label": "EGLFS EGLDevice",
"condition": "features.eglfs && tests.egl-egldevice && features.kms",
"output": [ "privateFeature" ]
},
"eglfs_gbm": {
"label": "EGLFS GBM",
"condition": "features.eglfs && features.gbm && features.kms",
"output": [ "privateFeature" ]
},
"eglfs_vsp2": {
"label": "EGLFS VSP2",
"condition": "features.eglfs && features.gbm && features.kms && features.vsp2",
"output": [ "privateFeature" ]
},
"eglfs_mali": {
"label": "EGLFS Mali",
"condition": "features.eglfs && (tests.egl-mali || tests.egl-mali-2)",
"output": [ "privateFeature" ]
},
"eglfs_viv": {
"label": "EGLFS i.Mx6",
"condition": "features.eglfs && tests.egl-viv",
"output": [ "privateFeature" ]
},
"eglfs_rcar": {
"label": "EGLFS RCAR",
"condition": "config.integrity && features.eglfs && tests.egl-rcar",
"output": [ "privateFeature" ]
},
"eglfs_viv_wl": {
"label": "EGLFS i.Mx6 Wayland",
"condition": "features.eglfs_viv && libs.wayland_server",
"output": [ "privateFeature" ]
},
"eglfs_openwfd": {
"label": "EGLFS OpenWFD",
"condition": "config.integrity && features.eglfs && tests.egl-openwfd",
"output": [ "privateFeature" ]
},
"eglfs_x11": {
"label": "EGLFS X11",
"condition": "features.eglfs && features.xcb-xlib && features.egl_x11",
"output": [ "privateFeature" ]
},
"gif": {
"label": "GIF",
"condition": "features.imageformatplugin",
"output": [
"privateFeature",
{ "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_GIF" }
]
},
"ico": {
"label": "ICO",
"condition": "features.imageformatplugin",
"output": [ "privateFeature", "feature" ]
},
"jpeg": {
"label": "JPEG",
"disable": "input.libjpeg == 'no'",
"condition": "features.imageformatplugin",
"output": [
"privateFeature",
{ "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_JPEG" }
]
},
"system-jpeg": {
"label": " Using system libjpeg",
"disable": "input.libjpeg == 'qt'",
"enable": "input.libjpeg == 'system'",
"condition": "features.jpeg && libs.libjpeg",
"output": [ "privateFeature" ]
},
"png": {
"label": "PNG",
"disable": "input.libpng == 'no'",
"output": [
"privateFeature",
{ "type": "define", "negative": true, "name": "QT_NO_IMAGEFORMAT_PNG" }
]
},
"system-png": {
"label": " Using system libpng",
"disable": "input.libpng == 'qt'",
"enable": "input.libpng == 'system'",
"autoDetect": "features.system-zlib",
"condition": "features.png && libs.libpng",
"output": [ "privateFeature" ]
},
"imageio-text-loading": {
"label": "Image Text section loading",
"output": [
"privateFeature",
{ "type": "define", "negative": true, "name": "QT_NO_IMAGEIO_TEXT_LOADING" }
]
},
"qpa_default_platform": {
"label": "QPA default platform",
"condition": "features.gui",
"output": [
{ "type": "define", "name": "QT_QPA_DEFAULT_PLATFORM_NAME", "value": "tests.qpa_default_platform.name" },
{ "type": "varAssign", "public": true, "name": "QT_DEFAULT_QPA_PLUGIN", "value": "tests.qpa_default_platform.plugin",
"condition": "!features.shared" }
]
},
"sessionmanager": {
"label": "Session Management",
"purpose": "Provides an interface to the windowing system's session management.",
"section": "Kernel",
"output": [ "publicFeature", "feature" ]
},
"tslib": {
"label": "tslib",
"condition": "libs.tslib",
"output": [ "privateFeature" ]
},
"tuiotouch": {
"label": "TuioTouch",
"purpose": "Provides the TuioTouch input plugin.",
"condition": "features.network && features.udpsocket",
"output": [ "privateFeature" ]
},
"xcb": {
"label": "XCB",
"section": "Platform plugins",
"autoDetect": "!config.darwin",
"condition": "features.thread && libs.xcb && tests.xcb_syslibs && features.xkbcommon-x11",
"output": [ "privateFeature" ]
},
"x11-prefix": {
"label": "X11 prefix",
"emitIf": "features.xcb",
"output": [ { "type": "varAssign", "name": "QMAKE_X11_PREFIX", "value": "tests.x11prefix.value" } ]
},
"xcb-glx-plugin": {
"label": "GLX Plugin",
"emitIf": "features.xcb",
"condition": "features.xcb-xlib && features.opengl && !features.opengles2",
"output": [ "privateFeature" ]
},
"xcb-glx": {
"label": " XCB GLX",
"emitIf": "features.xcb && features.xcb-glx-plugin",
"condition": "libs.xcb_glx",
"output": [ "privateFeature" ]
},
"xcb-egl-plugin": {
"label": "EGL-X11 Plugin",
"emitIf": "features.xcb",
"condition": "features.egl_x11 && features.opengl",
"output": [ "privateFeature" ]
},
"xcb-native-painting": {
"label": "Native painting (experimental)",
"autoDetect": false,
"emitIf": "features.xcb",
"condition": "features.xcb-xlib && features.fontconfig && libs.xrender",
"output": [ "privateFeature" ]
},
"xrender": {
"label": "XRender for native painting",
"emitIf": "features.xcb && features.xcb-native-painting",
"condition": "features.xcb-native-painting",
"output": [ "privateFeature" ]
},
"xcb-xlib": {
"label": "XCB Xlib",
"condition": "features.xlib && libs.xcb_xlib",
"output": [ "privateFeature" ]
},
"xcb-sm": {
"label": "xcb-sm",
"emitIf": "features.xcb",
"condition": "features.sessionmanager && libs.x11sm",
"output": [ "privateFeature" ]
},
"system-xcb-xinput": {
"label": "Using system-provided xcb-xinput",
"emitIf": "features.xcb",
"disable": "input.bundled-xcb-xinput == 'yes'",
"enable": "input.bundled-xcb-xinput == 'no'",
"condition": "libs.xcb_xinput",
"output": [ "privateFeature" ]
},
"xkbcommon": {
"label": "xkbcommon",
"condition": "libs.xkbcommon",
"output": [ "privateFeature" ]
},
"xkbcommon-x11": {
"label": "xkbcommon-x11",
"condition": "features.xkbcommon && libs.xkbcommon_x11",
"output": [ "privateFeature" ]
},
"xlib": {
"label": "XLib",
"autoDetect": "!config.darwin || features.xcb",
"condition": "libs.xlib",
"output": [ "privateFeature" ]
},
"texthtmlparser": {
"label": "HtmlParser",
"purpose": "Provides a parser for HTML.",
"section": "Kernel",
"output": [ "publicFeature", "feature" ]
},
"textmarkdownreader": {
"label": "MarkdownReader",
"disable": "input.libmd4c == 'no'",
"enable": "input.libmd4c == 'system' || input.libmd4c == 'qt' || input.libmd4c == 'yes'",
"purpose": "Provides a Markdown (CommonMark and GitHub) reader",
"section": "Kernel",
"output": [ "publicFeature" ]
},
"system-textmarkdownreader": {
"label": " Using system libmd4c",
"disable": "input.libmd4c == 'qt'",
"enable": "input.libmd4c == 'system'",
"section": "Kernel",
"condition": "libs.libmd4c",
"output": [ "publicFeature" ]
},
"textmarkdownwriter": {
"label": "MarkdownWriter",
"purpose": "Provides a Markdown (CommonMark) writer",
"section": "Kernel",
"output": [ "publicFeature" ]
},
"textodfwriter": {
"label": "OdfWriter",
"purpose": "Provides an ODF writer.",
"section": "Kernel",
"condition": "features.xmlstreamwriter",
"output": [ "publicFeature", "feature" ]
},
"cssparser": {
"label": "CssParser",
"purpose": "Provides a parser for Cascading Style Sheets.",
"section": "Kernel",
"output": [ "publicFeature", "feature" ]
},
"draganddrop": {
"label": "Drag and Drop",
"purpose": "Supports the drag and drop mechansim.",
"section": "Kernel",
"condition": "features.imageformat_xpm",
"output": [ "publicFeature", "feature" ]
},
"shortcut": {
"label": "QShortcut",
"purpose": "Provides keyboard accelerators and shortcuts.",
"section": "Kernel",
"output": [ "publicFeature", "feature" ]
},
"action": {
"label": "QAction",
"purpose": "Provides widget actions.",
"section": "Kernel",
"output": [ "publicFeature", "feature" ]
},
"cursor": {
"label": "QCursor",
"purpose": "Provides mouse cursors.",
"section": "Kernel",
"output": [ "publicFeature", "feature" ]
},
"clipboard": {
"label": "QClipboard",
"purpose": "Provides cut and paste operations.",
"section": "Kernel",
"condition": "!config.integrity && !config.qnx && !config.rtems",
"output": [ "publicFeature", "feature" ]
},
"wheelevent": {
"label": "QWheelEvent",
"purpose": "Supports wheel events.",
"section": "Kernel",
"output": [ "publicFeature", "feature" ]
},
"tabletevent": {
"label": "QTabletEvent",
"purpose": "Supports tablet events.",
"section": "Kernel",
"output": [ "publicFeature", "feature" ]
},
"im": {
"label": "QInputContext",
"purpose": "Provides complex input methods.",
"section": "Kernel",
"condition": "features.library",
"output": [ "publicFeature", "feature" ]
},
"highdpiscaling": {
"label": "High DPI Scaling",
"purpose": "Provides automatic scaling of DPI-unaware applications on high-DPI displays.",
"section": "Kernel",
"output": [ "publicFeature", "feature" ]
},
"validator": {
"label": "QValidator",
"purpose": "Supports validation of input text.",
"section": "Widgets",
"output": [ "publicFeature", "feature" ]
},
"standarditemmodel": {
"label": "QStandardItemModel",
"purpose": "Provides a generic model for storing custom data.",
"section": "ItemViews",
"condition": "features.itemmodel",
"output": [ "publicFeature", "feature" ]
},
"imageformatplugin": {
"label": "QImageIOPlugin",
"purpose": "Provides a base for writing a image format plugins.",
"section": "Images",
"output": [ "publicFeature", "feature" ]
},
"movie": {
"label": "QMovie",
"purpose": "Supports animated images.",
"section": "Images",
"output": [ "publicFeature", "feature" ]
},
"imageformat_bmp": {
"label": "BMP Image Format",
"purpose": "Supports Microsoft's Bitmap image file format.",
"section": "Images",
"output": [ "publicFeature", "feature" ]
},
"imageformat_ppm": {
"label": "PPM Image Format",
"purpose": "Supports the Portable Pixmap image file format.",
"section": "Images",
"output": [ "publicFeature", "feature" ]
},
"imageformat_xbm": {
"label": "XBM Image Format",
"purpose": "Supports the X11 Bitmap image file format.",
"section": "Images",
"output": [ "publicFeature", "feature" ]
},
"imageformat_xpm": {
"label": "XPM Image Format",
"purpose": "Supports the X11 Pixmap image file format.",
"section": "Images",
"output": [ "publicFeature", "feature" ]
},
"imageformat_png": {
"label": "PNG Image Format",
"purpose": "Supports the Portable Network Graphics image file format.",
"section": "Images",
"output": [ "publicFeature", "feature" ]
},
"imageformat_jpeg": {
"label": "JPEG Image Format",
"purpose": "Supports the Joint Photographic Experts Group image file format.",
"section": "Images",
"output": [ "publicFeature", "feature" ]
},
"image_heuristic_mask": {
"label": "QImage::createHeuristicMask()",
"purpose": "Supports creating a 1-bpp heuristic mask for images.",
"section": "Images",
"output": [ "publicFeature", "feature" ]
},
"image_text": {
"label": "Image Text",
"purpose": "Supports image file text strings.",
"section": "Images",
"output": [ "publicFeature", "feature" ]
},
"picture": {
"label": "QPicture",
"purpose": "Supports recording and replaying QPainter commands.",
"section": "Painting",
"output": [ "publicFeature", "feature" ]
},
"colornames": {
"label": "Color Names",
"purpose": "Supports color names such as \"red\", used by QColor and by some HTML documents.",
"section": "Painting",
"output": [ "publicFeature", "feature" ]
},
"pdf": {
"label": "QPdf",
"purpose": "Provides a PDF backend for QPainter.",
"section": "Painting",
"condition": "features.temporaryfile",
"output": [ "publicFeature", "feature" ]
},
"desktopservices": {
"label": "QDesktopServices",
"purpose": "Provides methods for accessing common desktop services.",
"section": "Utilities",
"output": [ "publicFeature", "feature" ]
},
"systemtrayicon": {
"label": "QSystemTrayIcon",
"purpose": "Provides an icon for an application in the system tray.",
"section": "Utilities",
"condition": "features.temporaryfile",
"output": [ "publicFeature", "feature" ]
},
"accessibility": {
"label": "Accessibility",
"purpose": "Provides accessibility support.",
"section": "Utilities",
"condition": "features.properties",
"output": [ "publicFeature", "feature" ]
},
"multiprocess": {
"label": "Multi process",
"purpose": "Provides support for detecting the desktop environment, launching external processes and opening URLs.",
"section": "Utilities",
"condition": "!config.integrity && !config.rtems",
"output": [ "privateFeature" ]
},
"whatsthis": {
"label": "QWhatsThis",
"purpose": "Supports displaying \"What's this\" help.",
"section": "Widget Support",
"output": [ "publicFeature", "feature" ]
},
"raster-64bit": {
"label": "QPainter - 64 bit raster",
"purpose": "Internal painting support for 64 bit (16 bpc) rasterization.",
"section": "Painting",
"output": [ "privateFeature" ]
}
},
"earlyReport": [
{
"type": "error",
"condition": "input.xcb != '' && input.xcb != 'no' && input.xkbcommon == 'no'",
"message": "XCB plugin requires xkbcommon and xkbcommon-x11, but -no-xkbcommon was provided."
}
],
"report": [
{
"type": "note",
"condition": "features.xcb && config.darwin",
"message": "XCB support on macOS is minimal and untested. Some features will
not work properly or at all (e.g. OpenGL, desktop services or accessibility),
or may depend on your system and XQuartz setup."
},
{
"type": "note",
"condition": "features.accessibility && features.xcb && !features.accessibility-atspi-bridge",
"message": "Disabling X11 Accessibility Bridge: D-Bus or AT-SPI is missing."
},
{
"type": "warning",
"condition": "input.qpa-platform-guard != ''",
"message": "The [-no]-qpa-platform-guard argument is deprecated and has no effect."
},
{
"type": "warning",
"condition": "features.gui && config.linux && !config.android && !features.xcb && !features.eglfs && !features.directfb && !features.linuxfb",
"message": "No QPA platform plugin enabled! This will
produce a Qt that cannot run GUI applications.
See \"Platform backends\" in the output of --help."
},
{
"type": "warning",
"condition": "config.win32 && (features.opengles2 || features.opengl-dynamic) && !features.angle",
"message": "Using OpenGL ES 2.0 on Windows without ANGLE.
The build will most likely fail.
Specify -opengl desktop to use regular OpenGL."
},
{
"type": "warning",
"condition": "config.darwin && features.system-harfbuzz",
"message": "On OS X, AAT is supported only with -qt-harfbuzz."
},
{
"type": "error",
"condition": "features.gui && !config.watchos && input.opengl != 'no' && !features.opengl-desktop && !features.opengles2 && !features.opengl-dynamic",
"message": "The OpenGL functionality tests failed!
You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2],
QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform."
},
{
"type": "warning",
"condition": "!features.accessibility",
"message": "Accessibility disabled. This configuration of Qt is unsupported."
}
],
"summary": [
{
"section": "Qt Gui",
"entries": [
"accessibility",
"freetype",
"system-freetype",
"harfbuzz",
"system-harfbuzz",
"fontconfig",
{
"section": "Image formats",
"entries": [
"gif", "ico", "jpeg", "system-jpeg", "png", "system-png"
]
},
{
"section": "Text formats",
"entries": [
"texthtmlparser", "cssparser", "textodfwriter", "textmarkdownreader", "system-textmarkdownreader", "textmarkdownwriter"
]
},
"egl",
"openvg",
{
"section": "OpenGL",
"entries": [
{
"type": "feature",
"args": "angle",
"condition": "config.win32"
},
{
"type": "feature",
"args": "combined-angle-lib",
"condition": "features.angle"
},
"opengl-desktop",
{
"type": "feature",
"args": "opengl-dynamic",
"condition": "config.win32"
},
"opengles2",
"opengles3",
"opengles31",
"opengles32"
]
},
"vulkan",
"sessionmanager"
]
},
{
"section": "Features used by QPA backends",
"entries": [
"evdev",
"libinput",
"integrityhid",
"mtdev",
"tslib",
"xkbcommon",
{
"section": "X11 specific",
"entries": [
"xlib",
"xcb-xlib",
"egl_x11",
"xkbcommon-x11"
]
}
]
},
{
"section": "QPA backends",
"entries": [
"directfb", "eglfs",
{
"section": "EGLFS details",
"condition": "features.eglfs",
"entries": [
"eglfs_openwfd", "eglfs_viv", "eglfs_viv_wl", "eglfs_rcar", "eglfs_egldevice", "eglfs_gbm", "eglfs_vsp2", "eglfs_mali", "eglfs_brcm", "eglfs_x11"
]
},
"linuxfb", "vnc",
{
"type": "feature",
"condition": "config.integrity",
"args": "integrityfb"
},
{
"section": "QNX",
"condition": "config.qnx",
"entries": [
"lgmon", "qqnx_imf"
]
},
{
"section": "XCB",
"condition": "features.xcb",
"entries": [
"system-xcb-xinput", "xcb-native-painting",
{
"section": "GL integrations",
"entries": [
"xcb-glx-plugin",
"xcb-glx",
"xcb-egl-plugin"
]
}
]
},
{
"section": "Windows",
"condition": "config.win32",
"entries": [
"direct2d", "directwrite", "directwrite2"
]
}
]
}
]
}