| { |
| "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" |
| ] |
| } |
| ] |
| } |
| ] |
| } |