12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487 | # Copyright (C) 2022 The Qt Company Ltd.# SPDX-License-Identifier: BSD-3-Clause#### Inputs# input freetypeset(INPUT_freetype "undefined"CACHE STRING"")set_property(CACHE INPUT_freetype PROPERTY STRINGS undefined no qt system)# input harfbuzzset(INPUT_harfbuzz "undefined"CACHE STRING"")set_property(CACHE INPUT_harfbuzz PROPERTY STRINGS undefined no qt system)# input libjpegset(INPUT_libjpeg "undefined"CACHE STRING"")set_property(CACHE INPUT_libjpeg PROPERTY STRINGS undefined no qt system)# input libmd4cset(INPUT_libmd4c "undefined"CACHE STRING"")set_property(CACHE INPUT_libmd4c PROPERTY STRINGS undefined no qt system)# input libpngset(INPUT_libpng "undefined"CACHE STRING"")set_property(CACHE INPUT_libpng PROPERTY STRINGS undefined no qt system)#### Librariesqt_set01(X11_SUPPORTED LINUX OR HPUX OR FREEBSD OR NETBSD OR OPENBSD OR SOLARIS ORHURD)qt_find_package(ATSPI2 PROVIDED_TARGETS PkgConfig::ATSPI2 MODULE_NAME gui QMAKE_LIB atspi)qt_find_package(DirectFB PROVIDED_TARGETS PkgConfig::DirectFB MODULE_NAME gui QMAKE_LIB directfb)qt_find_package(Libdrm PROVIDED_TARGETS Libdrm::Libdrm MODULE_NAME gui QMAKE_LIB drm)qt_find_package(PlatformGraphics PROVIDED_TARGETS PlatformGraphics::PlatformGraphics MODULE_NAME gui QMAKE_LIB platform_graphics)qt_find_package(EGL PROVIDED_TARGETS EGL::EGL MODULE_NAME gui QMAKE_LIB egl)qt_find_package(WrapSystemFreetype 2.2.0PROVIDED_TARGETS WrapSystemFreetype::WrapSystemFreetype MODULE_NAME gui QMAKE_LIB freetype)if(QT_FEATURE_system_zlib)qt_add_qmake_lib_dependency(freetype zlib)endif()qt_find_package(Fontconfig PROVIDED_TARGETS Fontconfig::Fontconfig MODULE_NAME gui QMAKE_LIB fontconfig)qt_add_qmake_lib_dependency(fontconfig freetype)qt_find_package(gbm PROVIDED_TARGETS gbm::gbm MODULE_NAME gui QMAKE_LIB gbm)qt_find_package(WrapSystemHarfbuzz 2.6.0PROVIDED_TARGETS WrapSystemHarfbuzz::WrapSystemHarfbuzz MODULE_NAME gui QMAKE_LIB harfbuzz)qt_find_package(Libinput PROVIDED_TARGETS Libinput::Libinput MODULE_NAME gui QMAKE_LIB libinput)qt_find_package_extend_sbom(TARGETS Libinput::Libinput COPYRIGHTS"Copyright © 2006-2009 Simon Thum""Copyright © 2008-2012 Kristian Høgsberg""Copyright © 2010-2012 Intel Corporation""Copyright © 2010-2011 Benjamin Franzke""Copyright © 2011-2012 Collabora, Ltd.""Copyright © 2013-2014 Jonas Ådahl""Copyright © 2013-2015 Red Hat, Inc.")qt_find_package(WrapSystemJpeg PROVIDED_TARGETS WrapSystemJpeg::WrapSystemJpeg MODULE_NAME gui QMAKE_LIB libjpeg)qt_find_package(WrapSystemMd4c PROVIDED_TARGETS WrapSystemMd4c::WrapSystemMd4c MODULE_NAME gui QMAKE_LIB libmd4c)qt_find_package(WrapSystemPNG PROVIDED_TARGETS WrapSystemPNG::WrapSystemPNG MODULE_NAME gui QMAKE_LIB libpng)if(QT_FEATURE_system_zlib)qt_add_qmake_lib_dependency(libpng zlib)endif()qt_find_package(Mtdev PROVIDED_TARGETS PkgConfig::Mtdev MODULE_NAME gui QMAKE_LIB mtdev)qt_find_package(WrapOpenGL PROVIDED_TARGETS WrapOpenGL::WrapOpenGL MODULE_NAME gui QMAKE_LIB opengl)qt_find_package(GLESv2PROVIDED_TARGETS GLESv2::GLESv2MODULE_NAME gui QMAKE_LIB opengl_es2)qt_find_package(Tslib PROVIDED_TARGETS PkgConfig::Tslib MODULE_NAME gui QMAKE_LIB tslib)qt_find_package(WrapVulkanHeaders PROVIDED_TARGETS WrapVulkanHeaders::WrapVulkanHeaders MODULE_NAME gui QMAKE_LIB vulkan MARK_OPTIONAL)if((LINUX)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(Wayland PROVIDED_TARGETS Wayland::Server MODULE_NAME gui QMAKE_LIB wayland_server)qt_find_package(Wayland PROVIDED_TARGETS Wayland::Client MODULE_NAME gui QMAKE_LIB wayland_client)endif()if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(X11 PROVIDED_TARGETS X11::X11 MODULE_NAME gui QMAKE_LIB xlib)endif()if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(X11 PROVIDED_TARGETS X11::SM X11::ICE MODULE_NAME gui QMAKE_LIB x11sm)endif()if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB1.11PROVIDED_TARGETS XCB::XCB MODULE_NAME gui QMAKE_LIB xcb)endif()if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB0.1.1COMPONENTS CURSOR PROVIDED_TARGETS XCB::CURSOR MODULE_NAME gui QMAKE_LIB xcb_cursor)endif()if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB0.3.9COMPONENTS ICCCM PROVIDED_TARGETS XCB::ICCCM MODULE_NAME gui QMAKE_LIB xcb_icccm)endif()qt_add_qmake_lib_dependency(xcb_icccm xcb)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB0.3.9COMPONENTS IMAGE PROVIDED_TARGETS XCB::IMAGE MODULE_NAME gui QMAKE_LIB xcb_image)endif()qt_add_qmake_lib_dependency(xcb_image xcb_shm xcb)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB0.3.9COMPONENTS KEYSYMS PROVIDED_TARGETS XCB::KEYSYMS MODULE_NAME gui QMAKE_LIB xcb_keysyms)endif()qt_add_qmake_lib_dependency(xcb_keysyms xcb)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB0.3.9COMPONENTS RENDERUTIL PROVIDED_TARGETS XCB::RENDERUTIL MODULE_NAME gui QMAKE_LIB xcb_renderutil)endif()qt_add_qmake_lib_dependency(xcb_renderutil xcb xcb_render)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB COMPONENTS RANDR PROVIDED_TARGETS XCB::RANDR MODULE_NAME gui QMAKE_LIB xcb_randr)endif()qt_add_qmake_lib_dependency(xcb_randr xcb)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB COMPONENTS SHAPE PROVIDED_TARGETS XCB::SHAPE MODULE_NAME gui QMAKE_LIB xcb_shape)endif()qt_add_qmake_lib_dependency(xcb_shape xcb)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB COMPONENTS SHM PROVIDED_TARGETS XCB::SHM MODULE_NAME gui QMAKE_LIB xcb_shm)endif()qt_add_qmake_lib_dependency(xcb_shm xcb)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB COMPONENTS SYNC PROVIDED_TARGETS XCB::SYNC MODULE_NAME gui QMAKE_LIB xcb_sync)endif()qt_add_qmake_lib_dependency(xcb_sync xcb)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB COMPONENTS XFIXES PROVIDED_TARGETS XCB::XFIXES MODULE_NAME gui QMAKE_LIB xcb_xfixes)endif()qt_add_qmake_lib_dependency(xcb_xfixes xcb)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(X11_XCB PROVIDED_TARGETS X11::XCB MODULE_NAME gui QMAKE_LIB xcb_xlib)endif()qt_add_qmake_lib_dependency(xcb_xlib xcb xlib)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB COMPONENTS XKB PROVIDED_TARGETS XCB::XKB MODULE_NAME gui QMAKE_LIB xcb_xkb)endif()qt_add_qmake_lib_dependency(xcb_xkb xcb)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB COMPONENTS RENDER PROVIDED_TARGETS XCB::RENDER MODULE_NAME gui QMAKE_LIB xcb_render)endif()qt_add_qmake_lib_dependency(xcb_render xcb)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB COMPONENTS GLX PROVIDED_TARGETS XCB::GLX MODULE_NAME gui QMAKE_LIB xcb_glx)endif()qt_add_qmake_lib_dependency(xcb_glx xcb)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XCB1.12COMPONENTS XINPUT PROVIDED_TARGETS XCB::XINPUT MODULE_NAME gui QMAKE_LIB xcb_xinput)endif()qt_add_qmake_lib_dependency(xcb_xinput xcb)if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XKB0.5.0PROVIDED_TARGETS XKB::XKB MODULE_NAME gui QMAKE_LIB xkbcommon)endif()if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XKB_COMMON_X110.5.0PROVIDED_TARGETS PkgConfig::XKB_COMMON_X11 MODULE_NAME gui QMAKE_LIB xkbcommon_x11)endif()if((X11_SUPPORTED)OR QT_FIND_ALL_PACKAGES_ALWAYS)qt_find_package(XRender 0.6PROVIDED_TARGETS PkgConfig::XRender MODULE_NAME gui QMAKE_LIB xrender)endif()qt_add_qmake_lib_dependency(xrender xlib)qt_find_package(RenderDoc PROVIDED_TARGETS RenderDoc::RenderDoc)#### Testsif(TARGET PlatformGraphics::PlatformGraphics)set(plaform_graphics_libs PlatformGraphics::PlatformGraphics)else()set(plaform_graphics_libs "")endif()# drm_atomicqt_config_compile_test(drm_atomic LABEL"DRM Atomic API"LIBRARIES Libdrm::Libdrm CODE"#include <stdlib.h>#include <stdint.h>extern\"C\"{#include <xf86drmMode.h>#include <xf86drm.h>}int main(void){ /* BEGIN TEST: */drmModeAtomicReq *request; /* END TEST: */ return 0;}")# egl-x11qt_config_compile_test(egl_x11 LABEL"EGL on X11"LIBRARIESEGL::EGLX11::X11${plaform_graphics_libs}CODE"// 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.#define USE_X11#include <EGL/egl.h>#include <X11/Xlib.h>int main(void){ /* BEGIN TEST: */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); /* END TEST: */ return 0;}")# egl-brcmqt_config_compile_test(egl_brcm LABEL"Broadcom EGL (Raspberry Pi)"LIBRARIESEGL::EGL${plaform_graphics_libs}CODE"#include <EGL/egl.h>#include <bcm_host.h>int main(void){ /* BEGIN TEST: */vc_dispmanx_display_open(0); /* END TEST: */ return 0;}"# FIXME: use: unmapped library: bcm_host)# egl-egldeviceqt_config_compile_test(egl_egldevice LABEL"EGLDevice"LIBRARIESEGL::EGL${plaform_graphics_libs}CODE"#include <EGL/egl.h>#include <EGL/eglext.h>int main(void){ /* BEGIN TEST: */EGLDeviceEXT device = 0;EGLStreamKHR stream = 0;EGLOutputLayerEXT layer = 0;(void) EGL_DRM_CRTC_EXT;(void) EGL_DRM_MASTER_FD_EXT; /* END TEST: */ return 0;}")# egl-maliqt_config_compile_test(egl_mali LABEL"Mali EGL"LIBRARIESEGL::EGL${plaform_graphics_libs}CODE"#include <EGL/fbdev_window.h>#include <EGL/egl.h>#include <GLES2/gl2.h>int main(void){ /* BEGIN TEST: */fbdev_window *w = 0; /* END TEST: */ return 0;}")# egl-mali-2qt_config_compile_test(egl_mali_2 LABEL"Mali 2 EGL"LIBRARIESEGL::EGL${plaform_graphics_libs}CODE"#include <EGL/egl.h>#include <GLES2/gl2.h>int main(void){ /* BEGIN TEST: */mali_native_window *w = 0; /* END TEST: */ return 0;}")# egl-vivqt_config_compile_test(egl_viv LABEL"i.Mx6 EGL"LIBRARIESEGL::EGL${plaform_graphics_libs}COMPILE_OPTIONS"-DEGL_API_FB=1"CODE"#include <EGL/egl.h>#include <EGL/eglvivante.h>int main(void){ /* BEGIN TEST: */#ifdef __INTEGRITYfbGetDisplay();#else// Do not rely on fbGetDisplay(), since the signature has changed over time.// Stick to fbGetDisplayByIndex().fbGetDisplayByIndex(0);#endif /* END TEST: */ return 0;}"# FIXME: qmake: ['DEFINES += EGL_API_FB=1', '!integrity: DEFINES += LINUX=1'])# egl-openwfdqt_config_compile_test(egl_openwfd LABEL"OpenWFD EGL"LIBRARIESEGL::EGL${plaform_graphics_libs}CODE"#include <wfd.h>int main(void){ /* BEGIN TEST: */wfdEnumerateDevices(nullptr, 0, nullptr); /* END TEST: */ return 0;}")# egl-rcarqt_config_compile_test(egl_rcar LABEL"RCAR EGL"LIBRARIESEGL::EGLGLESv2::GLESv2${plaform_graphics_libs}CODE"#include <EGL/egl.h>extern\"C\"{extern unsigned long PVRGrfxServerInit(void);}int main(void){ /* BEGIN TEST: */PVRGrfxServerInit(); /* END TEST: */ return 0;}")# evdevqt_config_compile_test(evdev LABEL"evdev"CODE"#if defined(__FreeBSD__)# include <dev/evdev/input.h>#else# include <linux/input.h># include <linux/kd.h>#endifenum { e1 = ABS_PRESSURE, e2 = ABS_X, e3 = REL_X, e4 = SYN_REPORT,};int main(void){ /* BEGIN TEST: */input_event buf[32];(void) buf; /* END TEST: */ return 0;}")# vxworksevdevqt_config_compile_test(vxworksevdev LABEL"VxWorks evdev""#include <evdevLib.h>enum { e1 = EV_DEV_ABS, e2 = EV_DEV_PTR_ABS_X, e3 = EV_DEV_PTR_ABS_Y, e4 = EV_DEV_PTR_BTN_TOUCH,};int main(void){ /* BEGIN TEST: */EV_DEV_EVENT buf[32];(void) buf; /* END TEST: */ return 0;}")# integrityfbqt_config_compile_test(integrityfb LABEL"INTEGRITY framebuffer"CODE"#include <device/fbdriver.h>int main(void){ /* BEGIN TEST: */FBDriver *driver = 0; /* END TEST: */ return 0;}")# linuxfbqt_config_compile_test(linuxfb LABEL"LinuxFB"CODE"#include <linux/fb.h>#include <sys/kd.h>#include <sys/ioctl.h>int main(void){ /* BEGIN TEST: */fb_fix_screeninfo finfo;fb_var_screeninfo vinfo;int fd = 3;ioctl(fd, FBIOGET_FSCREENINFO, &finfo);ioctl(fd, FBIOGET_VSCREENINFO, &vinfo); /* END TEST: */ return 0;}")# opengles3if(WASM)set(extra_compiler_options "-s FULL_ES3=1")endif()qt_config_compile_test(opengles3 LABEL"OpenGL ES 3.0"LIBRARIESGLESv2::GLESv2${plaform_graphics_libs}COMPILE_OPTIONS${extra_compiler_options}CODE"#ifdef __APPLE__# include <OpenGLES/ES3/gl.h>#else# define GL_GLEXT_PROTOTYPES# include <GLES3/gl3.h>#endifint main(void){ /* BEGIN TEST: */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); /* END TEST: */ return 0;}")# opengles31qt_config_compile_test(opengles31 LABEL"OpenGL ES 3.1"LIBRARIESGLESv2::GLESv2${plaform_graphics_libs}CODE"#include <GLES3/gl31.h>int main(void){ /* BEGIN TEST: */glDispatchCompute(1, 1, 1);glProgramUniform1i(0, 0, 0); /* END TEST: */ return 0;}")# opengles32qt_config_compile_test(opengles32 LABEL"OpenGL ES 3.2"LIBRARIESGLESv2::GLESv2${plaform_graphics_libs}CODE"#include <GLES3/gl32.h>int main(void){ /* BEGIN TEST: */glFramebufferTexture(GL_TEXTURE_2D, GL_DEPTH_STENCIL_ATTACHMENT, 1, 0); /* END TEST: */ return 0;}")# xcb_syslibsqt_config_compile_test(xcb_syslibs LABEL"XCB (extensions)"LIBRARIESXCB::CURSORXCB::ICCCMXCB::IMAGEXCB::KEYSYMSXCB::RANDRXCB::RENDERXCB::RENDERUTILXCB::SHAPEXCB::SHMXCB::SYNCXCB::XFIXESXCB::XKBXCB::XCBCODE"// xkb.h is using a variable called 'explicit', which is a reserved keyword in C++#define explicit dont_use_cxx_explicit#include <xcb/xcb.h>#include <xcb/xcb_image.h>#include <xcb/xcb_keysyms.h>#include <xcb/xcb_cursor.h>#include <xcb/randr.h>#include <xcb/render.h>#include <xcb/shape.h>#include <xcb/shm.h>#include <xcb/sync.h>#include <xcb/xfixes.h>#include <xcb/xcb_icccm.h>#include <xcb/xcb_renderutil.h>#include <xcb/xkb.h>#undef explicitint main(void){ /* BEGIN TEST: */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); /* END TEST: */ return 0;}")# libinput_hires_wheel_supportqt_config_compile_test(libinput_hires_wheel_support LABEL"libinput hires wheel support"LIBRARIES Libinput::Libinput CODE"#include <libinput.h>int main(void){ /* BEGIN TEST: */libinput_event_type type = LIBINPUT_EVENT_POINTER_SCROLL_WHEEL;libinput_event_pointer_get_scroll_value_v120(nullptr, LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL); /* END TEST: */ return 0;}")# directwrite (assumes DirectWrite2)qt_config_compile_test(directwrite LABEL"WINDOWS directwrite"LIBRARIES dwrite CODE"#include <dwrite_2.h>int main(int, char **){ IUnknown *factory = nullptr; DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory2), &factory); return 0;}")# directwrite3 (not present in MinGW)qt_config_compile_test(directwrite3 LABEL"WINDOWS directwrite3"LIBRARIES dwrite CODE"#include <dwrite_3.h>int main(int, char **){ IUnknown *factory = nullptr; DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory6), &factory); return 0;}")# directwritecolrv1qt_config_compile_test(directwritecolrv1 LABEL"WINDOWS directwritecolrv1"LIBRARIES dwrite CODE"#include <dwrite_3.h>int main(int, char **){ IUnknown *factory = nullptr; // Just check that the API is available for the build DWRITE_PAINT_ELEMENT paintElement; if (false) { DWRITE_COLOR_F dwColor; dwColor.r = 0; dwColor.g = 0; dwColor.b = 0; dwColor.a = 0; IDWritePaintReader *paintReader = nullptr; // Some versions of MinGW has a dwrite_3.h header with buggy generated APIs. One of these // is that the SetTextColor() function takes a pointer instead of a const-ref. We check // for this to disable the COLRv1 feature for broken headers. paintReader->SetTextColor(dwColor); } return 0;}")qt_config_compile_test(d2d1 LABEL"WINDOWS Direct2D"LIBRARIES d2d1 CODE"#include <d2d1.h>int main(int, char **){ void *factory = nullptr; D2D1_FACTORY_OPTIONS options; ZeroMemory(&options, sizeof(D2D1_FACTORY_OPTIONS)); D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, GUID{}, &options, &factory); return 0;}")qt_config_compile_test(d2d1_1 LABEL"WINDOWS Direct2D 1.1"LIBRARIES d2d1 CODE"#include <d2d1_1.h>int main(int, char **){ ID2D1Factory1 *d2dFactory; D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &d2dFactory); return 0;}")qt_config_compile_test(renderdoc LIBRARIES RenderDoc::RenderDoc LABEL"RenderDoc header check"CODE"#include <renderdoc_app.h>int main(int, char **){ if (RENDERDOC_Version::eRENDERDOC_API_Version_1_6_0) return 0; return 0;}")#### Featuresqt_feature("accessibility-atspi-bridge"PUBLIC PRIVATELABEL"ATSPI Bridge"CONDITION QT_FEATURE_accessibility AND QT_FEATURE_dbus AND ATSPI2_FOUND)qt_feature_definition("accessibility-atspi-bridge""QT_NO_ACCESSIBILITY_ATSPI_BRIDGE"NEGATE VALUE"1")qt_feature("directfb"PRIVATESECTION"Platform plugins"LABEL"DirectFB"AUTODETECT OFFCONDITION DirectFB_FOUND )qt_feature("directwrite"PRIVATELABEL"DirectWrite"CONDITION TEST_directwrite EMIT_IF WIN32)qt_feature("directwrite3"PRIVATELABEL"DirectWrite 3"CONDITION QT_FEATURE_directwrite AND TEST_directwrite3EMIT_IF WIN32)qt_feature("directwritecolrv1"PRIVATELABEL"DirectWrite COLRv1 Support"CONDITION QT_FEATURE_directwrite3AND TEST_directwritecolrv1EMIT_IF WIN32)qt_feature("direct2d"PRIVATELABEL"Direct 2D"CONDITION WIN32 AND NOT WINRT AND TEST_d2d1)qt_feature("direct2d1_1"PRIVATELABEL"Direct 2D 1.1"CONDITION QT_FEATURE_direct2d AND TEST_d2d1_1)qt_feature("emojisegmenter"PUBLIC PRIVATESECTION"Fonts"LABEL"Emoji Segmenter"PURPOSE"Supports parsing complex emoji sequences for better font resolution.")qt_feature_definition("emojisegmenter""QT_NO_EMOJISEGMENTER"NEGATE VALUE"1")qt_feature("evdev"PRIVATELABEL"evdev"CONDITION QT_FEATURE_thread AND TEST_evdev )qt_feature("vxworksevdev"PRIVATELABEL"vxworksevdev"CONDITION QT_FEATURE_thread AND TEST_vxworksevdev )qt_feature("freetype"PUBLIC PRIVATESECTION"Fonts"LABEL"FreeType"PURPOSE"Supports the FreeType 2 font engine (and its supported font formats).")qt_feature_definition("freetype""QT_NO_FREETYPE"NEGATE VALUE"1")qt_feature("system-freetype"PRIVATE SYSTEM_LIBRARYLABEL" Using system FreeType"AUTODETECT NOT MSVCCONDITION QT_FEATURE_freetype AND WrapSystemFreetype_FOUND ENABLE INPUT_freetype STREQUAL'system'DISABLE INPUT_freetype STREQUAL'qt')qt_feature("fontconfig"PUBLIC PRIVATELABEL"Fontconfig"AUTODETECT NOT APPLECONDITION NOT APPLE AND NOT WIN32 AND QT_FEATURE_system_freetype AND Fontconfig_FOUND )qt_feature_definition("fontconfig""QT_NO_FONTCONFIG"NEGATE VALUE"1")qt_feature("gbm"LABEL"GBM"CONDITION gbm_FOUND )qt_feature_config("gbm"QMAKE_PUBLIC_QT_CONFIG)qt_feature("harfbuzz"PUBLIC PRIVATELABEL"HarfBuzz")qt_feature_definition("harfbuzz""QT_NO_HARFBUZZ"NEGATE VALUE"1")qt_feature("system-harfbuzz"PRIVATE SYSTEM_LIBRARYLABEL" Using system HarfBuzz"AUTODETECT NOT APPLE AND NOT WIN32CONDITION QT_FEATURE_harfbuzz AND WrapSystemHarfbuzz_FOUND ENABLE INPUT_harfbuzz STREQUAL'system'DISABLE INPUT_harfbuzz STREQUAL'qt')qt_feature("qqnx_imf"PRIVATELABEL"IMF"CONDITION libs.imf OR FIXMEEMIT_IF QNX)qt_feature("integrityfb"PRIVATESECTION"Platform plugins"LABEL"INTEGRITY framebuffer"CONDITION INTEGRITY AND TEST_integrityfb )qt_feature("kms"PRIVATELABEL"KMS"CONDITION Libdrm_FOUND )qt_feature_config("kms"QMAKE_PUBLIC_QT_CONFIG)qt_feature("drm_atomic"PRIVATELABEL"DRM Atomic API"CONDITION Libdrm_FOUND AND TEST_drm_atomic )qt_feature("libinput"PRIVATELABEL"libinput"CONDITION QT_FEATURE_libudev AND Libinput_FOUND )qt_feature("integrityhid"PRIVATELABEL"INTEGRITY HID"CONDITION INTEGRITY AND libs.integrityhid OR FIXME)qt_feature("libinput-axis-api"PRIVATELABEL"axis API in libinput"CONDITION QT_FEATURE_libinput AND ON)qt_feature("libinput-hires-wheel-support"PRIVATELABEL"HiRes wheel support in libinput"CONDITION QT_FEATURE_libinput AND TEST_libinput_hires_wheel_support )qt_feature("lgmon"LABEL"lgmon"CONDITION libs.lgmon OR FIXMEEMIT_IF QNX)qt_feature_config("lgmon"QMAKE_PRIVATE_CONFIG)qt_feature("linuxfb"PRIVATESECTION"Platform plugins"LABEL"LinuxFB"CONDITION TEST_linuxfb AND QT_FEATURE_regularexpression )qt_feature("vsp2"PRIVATELABEL"VSP2"AUTODETECT OFFCONDITION libs.v4l2 OR FIXME)qt_feature("vnc"PRIVATESECTION"Platform plugins"LABEL"VNC"CONDITION(UNIX AND NOT ANDROID AND NOT APPLE AND NOT WASM)AND(QT_FEATURE_regularexpression AND QT_FEATURE_network ))qt_feature("mtdev"PRIVATELABEL"mtdev"CONDITION Mtdev_FOUND )qt_feature("opengles2"PUBLICLABEL"OpenGL ES 2.0"CONDITION NOT WIN32 AND NOT WATCHOS AND NOT QT_FEATURE_opengl_desktop AND GLESv2_FOUNDENABLE INPUT_opengl STREQUAL'es2'DISABLE INPUT_opengl STREQUAL'desktop'OR INPUT_opengl STREQUAL'dynamic'OR INPUT_opengl STREQUAL'no')qt_feature_config("opengles2"QMAKE_PUBLIC_QT_CONFIG)qt_feature("opengles3"PUBLICLABEL"OpenGL ES 3.0"CONDITION QT_FEATURE_opengles2AND TEST_opengles3)qt_feature("opengles31"PUBLICLABEL"OpenGL ES 3.1"CONDITION QT_FEATURE_opengles3AND TEST_opengles31)qt_feature("opengles32"PUBLICLABEL"OpenGL ES 3.2"CONDITION QT_FEATURE_opengles31 AND TEST_opengles32)qt_feature("opengl-desktop"LABEL"Desktop OpenGL"AUTODETECT NOT WIN32CONDITION(WIN32 AND(MSVC OR WrapOpenGL_FOUND ) )OR(NOT WATCHOS AND NOT WIN32 AND NOT WASM AND WrapOpenGL_FOUND )ENABLE INPUT_opengl STREQUAL'desktop'DISABLE INPUT_opengl STREQUAL'es2'OR INPUT_opengl STREQUAL'dynamic'OR INPUT_opengl STREQUAL'no')qt_feature("opengl-dynamic"LABEL"Dynamic OpenGL"CONDITION WIN32DISABLE INPUT_opengl STREQUAL'no'OR INPUT_opengl STREQUAL'desktop')qt_feature("dynamicgl"PUBLICLABEL"Dynamic OpenGL: dynamicgl"CONDITION QT_FEATURE_opengl_dynamic DISABLE INPUT_opengl STREQUAL'no'OR INPUT_opengl STREQUAL'desktop')qt_feature_definition("opengl-dynamic""QT_OPENGL_DYNAMIC")qt_feature("opengl"PUBLICLABEL"OpenGL"CONDITION QT_FEATURE_opengl_desktop OR QT_FEATURE_opengl_dynamic OR QT_FEATURE_opengles2)qt_feature_definition("opengl""QT_NO_OPENGL"NEGATE VALUE"1")qt_feature("vkgen"PRIVATELABEL"vkgen"CONDITION QT_FEATURE_xmlstreamreader )qt_feature("vulkan"PUBLICLABEL"Vulkan"CONDITION QT_FEATURE_library AND QT_FEATURE_vkgen AND WrapVulkanHeaders_FOUND )qt_feature("metal"PUBLICLABEL"Metal"CONDITION MACOS OR IOS OR VISIONOS)qt_feature("vkkhrdisplay"PRIVATESECTION"Platform plugins"LABEL"VK_KHR_display"CONDITION NOT ANDROID AND NOT APPLE AND NOT WIN32 AND NOT WASM AND QT_FEATURE_vulkan )qt_feature("openvg"PUBLICLABEL"OpenVG"CONDITION libs.openvg OR FIXME)qt_feature("egl"PUBLICLABEL"EGL"CONDITION(QT_FEATURE_opengl OR QT_FEATURE_openvg )AND EGL_FOUND AND(QT_FEATURE_dlopen OR NOT UNIX OR INTEGRITY OR VXWORKS))qt_feature_definition("egl""QT_NO_EGL"NEGATE VALUE"1")qt_feature("egl_x11"PRIVATELABEL"EGL on X11"CONDITION QT_FEATURE_thread AND QT_FEATURE_egl AND TEST_egl_x11)qt_feature("eglfs"PRIVATESECTION"Platform plugins"LABEL"EGLFS"CONDITION NOT ANDROID AND NOT APPLE AND NOT WIN32 AND NOT WASM AND NOT QNX AND QT_FEATURE_egl )qt_feature("eglfs_brcm"PRIVATELABEL"EGLFS Raspberry Pi"CONDITION QT_FEATURE_eglfs AND TEST_egl_brcm )qt_feature("eglfs_egldevice"PRIVATELABEL"EGLFS EGLDevice"CONDITION QT_FEATURE_eglfs AND TEST_egl_egldevice AND QT_FEATURE_kms )qt_feature("eglfs_gbm"PRIVATELABEL"EGLFS GBM"CONDITION QT_FEATURE_eglfs AND gbm_FOUND AND QT_FEATURE_kms )qt_feature("eglfs_vsp2"PRIVATELABEL"EGLFS VSP2"CONDITION QT_FEATURE_eglfs AND gbm_FOUND AND QT_FEATURE_kms AND QT_FEATURE_vsp2)qt_feature("eglfs_mali"PRIVATELABEL"EGLFS Mali"CONDITION QT_FEATURE_eglfs AND(TEST_egl_mali OR TEST_egl_mali_2))qt_feature("eglfs_viv"PRIVATELABEL"EGLFS i.Mx6"CONDITION QT_FEATURE_eglfs AND TEST_egl_viv )qt_feature("eglfs_rcar"PRIVATELABEL"EGLFS RCAR"CONDITION INTEGRITY AND QT_FEATURE_eglfs AND TEST_egl_rcar )qt_feature("eglfs_viv_wl"PRIVATELABEL"EGLFS i.Mx6 Wayland"CONDITION QT_FEATURE_eglfs_viv AND TARGET Wayland::Server )qt_feature("eglfs_openwfd"PRIVATELABEL"EGLFS OpenWFD"CONDITION INTEGRITY AND QT_FEATURE_eglfs AND TEST_egl_openwfd )qt_feature("eglfs_x11"PRIVATELABEL"EGLFS X11"CONDITION QT_FEATURE_eglfs AND QT_FEATURE_xcb_xlib AND QT_FEATURE_egl_x11)qt_feature("gif"PRIVATELABEL"GIF"CONDITION QT_FEATURE_imageformatplugin )qt_feature_definition("gif""QT_NO_IMAGEFORMAT_GIF"NEGATE)qt_feature("ico"PUBLIC PRIVATELABEL"ICO"CONDITION QT_FEATURE_imageformatplugin )qt_feature_definition("ico""QT_NO_ICO"NEGATE VALUE"1")qt_feature("jpeg"PRIVATELABEL"JPEG"CONDITION QT_FEATURE_imageformatplugin DISABLE INPUT_libjpeg STREQUAL'no')qt_feature_definition("jpeg""QT_NO_IMAGEFORMAT_JPEG"NEGATE VALUE"1")qt_feature("system-jpeg"PRIVATE SYSTEM_LIBRARYLABEL" Using system libjpeg"CONDITION QT_FEATURE_jpeg AND JPEG_FOUNDENABLE INPUT_libjpeg STREQUAL'system'DISABLE INPUT_libjpeg STREQUAL'qt')qt_feature("png"PRIVATELABEL"PNG"DISABLE INPUT_libpng STREQUAL'no')qt_feature_definition("png""QT_NO_IMAGEFORMAT_PNG"NEGATE)qt_feature("system-png"PRIVATE SYSTEM_LIBRARYLABEL" Using system libpng"AUTODETECT QT_FEATURE_system_zlib CONDITION QT_FEATURE_png AND WrapSystemPNG_FOUND ENABLE INPUT_libpng STREQUAL'system'DISABLE INPUT_libpng STREQUAL'qt')qt_feature("imageio-text-loading"PRIVATELABEL"Image Text section loading")qt_feature_definition("imageio-text-loading""QT_NO_IMAGEIO_TEXT_LOADING"NEGATE)qt_feature("sessionmanager"PUBLICSECTION"Kernel"LABEL"Session Management"PURPOSE"Provides an interface to the windowing system's session management.")qt_feature_definition("sessionmanager""QT_NO_SESSIONMANAGER"NEGATE VALUE"1")qt_feature("tslib"PRIVATELABEL"tslib"CONDITION Tslib_FOUND AND NOT INTEGRITY)qt_feature("tuiotouch"PRIVATELABEL"TuioTouch"PURPOSE"Provides the TuioTouch input plugin."CONDITION QT_FEATURE_network AND QT_FEATURE_udpsocket )qt_feature("xcb"PUBLICSECTION"Platform plugins"LABEL"XCB"AUTODETECT NOT APPLECONDITION QT_FEATURE_thread AND TARGET XCB::XCB AND TEST_xcb_syslibs AND QT_FEATURE_xkbcommon_x11)qt_feature("xcb-glx-plugin"PUBLICLABEL"GLX Plugin"CONDITION QT_FEATURE_xcb_xlib AND QT_FEATURE_opengl AND NOT QT_FEATURE_opengles2EMIT_IF QT_FEATURE_xcb )qt_feature("xcb-glx"PRIVATELABEL" XCB GLX"CONDITION XCB_GLX_FOUNDEMIT_IF QT_FEATURE_xcb AND QT_FEATURE_xcb_glx_plugin )qt_feature("xcb-egl-plugin"PRIVATELABEL"EGL-X11 Plugin"CONDITION QT_FEATURE_egl AND QT_FEATURE_opengl EMIT_IF QT_FEATURE_xcb )qt_feature("xcb-native-painting"PRIVATELABEL"Native painting (experimental)"AUTODETECT OFFCONDITION QT_FEATURE_xcb_xlib AND QT_FEATURE_fontconfig AND XRender_FOUNDEMIT_IF QT_FEATURE_xcb )qt_feature("xrender"PRIVATELABEL"XRender for native painting"CONDITION QT_FEATURE_xcb_native_painting EMIT_IF QT_FEATURE_xcb AND QT_FEATURE_xcb_native_painting )qt_feature("xcb-xlib"PRIVATELABEL"XCB Xlib"CONDITION QT_FEATURE_xlib AND X11_XCB_FOUND)qt_feature("xcb-sm"PRIVATELABEL"xcb-sm"CONDITION QT_FEATURE_sessionmanager AND X11_SM_FOUNDEMIT_IF QT_FEATURE_xcb )qt_feature("system-xcb-xinput"PRIVATE SYSTEM_LIBRARYLABEL"Using system-provided xcb-xinput"AUTODETECT OFFCONDITION XCB_XINPUT_FOUNDENABLE INPUT_bundled_xcb_xinput STREQUAL'no'DISABLE INPUT_bundled_xcb_xinput STREQUAL'yes'EMIT_IF QT_FEATURE_xcb )qt_feature("xkbcommon"PRIVATELABEL"xkbcommon"CONDITION XKB_FOUND)qt_feature("xkbcommon-x11"PRIVATELABEL"xkbcommon-x11"CONDITION QT_FEATURE_xkbcommon AND XKB_COMMON_X11_FOUND)qt_feature("xlib"PRIVATELABEL"XLib"AUTODETECT NOT APPLE OR QT_FEATURE_xcb CONDITION X11_FOUND)qt_feature("texthtmlparser"PUBLICSECTION"Kernel"LABEL"HtmlParser"PURPOSE"Provides a parser for HTML.")qt_feature_definition("texthtmlparser""QT_NO_TEXTHTMLPARSER"NEGATE VALUE"1")qt_feature("textmarkdownreader"PUBLICSECTION"Kernel"LABEL"MarkdownReader"PURPOSE"Provides a Markdown (CommonMark and GitHub) reader"ENABLE INPUT_libmd4c STREQUAL'system'OR INPUT_libmd4c STREQUAL'qt'OR INPUT_libmd4c STREQUAL'yes'DISABLE INPUT_libmd4c STREQUAL'no')qt_feature("system-textmarkdownreader"PUBLIC SYSTEM_LIBRARYSECTION"Kernel"LABEL" Using system libmd4c"CONDITION QT_FEATURE_textmarkdownreader AND WrapSystemMd4c_FOUND ENABLE INPUT_libmd4c STREQUAL'system'DISABLE INPUT_libmd4c STREQUAL'qt')qt_feature("textmarkdownwriter"PUBLICSECTION"Kernel"LABEL"MarkdownWriter"CONDITION QT_FEATURE_regularexpression PURPOSE"Provides a Markdown (CommonMark and GitHub) writer")qt_feature("textodfwriter"PUBLICSECTION"Kernel"LABEL"OdfWriter"PURPOSE"Provides an ODF writer."CONDITION QT_FEATURE_xmlstreamwriter )qt_feature_definition("textodfwriter""QT_NO_TEXTODFWRITER"NEGATE VALUE"1")qt_feature("cssparser"PUBLICSECTION"Kernel"LABEL"CssParser"PURPOSE"Provides a parser for Cascading Style Sheets.")qt_feature_definition("cssparser""QT_NO_CSSPARSER"NEGATE VALUE"1")qt_feature("draganddrop"PUBLICSECTION"Kernel"LABEL"Drag and Drop"PURPOSE"Supports the drag and drop mechanism."CONDITION QT_FEATURE_imageformat_xpm )qt_feature_definition("draganddrop""QT_NO_DRAGANDDROP"NEGATE VALUE"1")qt_feature("action"PUBLICSECTION"Kernel"LABEL"Q(Gui)Action(Group)"PURPOSE"Provides abstract user interface actions.")qt_feature_definition("action""QT_NO_ACTION"NEGATE VALUE"1")qt_feature("cursor"PUBLICSECTION"Kernel"LABEL"QCursor"PURPOSE"Provides mouse cursors.")qt_feature_definition("cursor""QT_NO_CURSOR"NEGATE VALUE"1")qt_feature("clipboard"PUBLICSECTION"Kernel"LABEL"QClipboard"PURPOSE"Provides cut and paste operations."CONDITION NOT INTEGRITY AND NOT QNX AND NOT rtems )qt_feature_definition("clipboard""QT_NO_CLIPBOARD"NEGATE VALUE"1")qt_feature("wheelevent"PUBLICSECTION"Kernel"LABEL"QWheelEvent"PURPOSE"Supports wheel events.")qt_feature_definition("wheelevent""QT_NO_WHEELEVENT"NEGATE VALUE"1")qt_feature("tabletevent"PUBLICSECTION"Kernel"LABEL"QTabletEvent"PURPOSE"Supports tablet events.")qt_feature_definition("tabletevent""QT_NO_TABLETEVENT"NEGATE VALUE"1")qt_feature("im"PUBLICSECTION"Kernel"LABEL"QInputContext"PURPOSE"Provides complex input methods.")qt_feature_definition("im""QT_NO_IM"NEGATE VALUE"1")qt_feature("highdpiscaling"PUBLICSECTION"Kernel"LABEL"High DPI Scaling"PURPOSE"Provides automatic scaling of DPI-unaware applications on high-DPI displays.")qt_feature_definition("highdpiscaling""QT_NO_HIGHDPISCALING"NEGATE VALUE"1")qt_feature("validator"PUBLICSECTION"Widgets"LABEL"QValidator"PURPOSE"Supports validation of input text.")qt_feature_definition("validator""QT_NO_VALIDATOR"NEGATE VALUE"1")qt_feature("standarditemmodel"PUBLICSECTION"ItemViews"LABEL"QStandardItemModel"PURPOSE"Provides a generic model for storing custom data."CONDITION QT_FEATURE_itemmodel )qt_feature_definition("standarditemmodel""QT_NO_STANDARDITEMMODEL"NEGATE VALUE"1")qt_feature("filesystemmodel"PUBLICSECTION"File I/O"LABEL"QFileSystemModel"PURPOSE"Provides a data model for the local filesystem."CONDITION QT_FEATURE_itemmodel )qt_feature_definition("filesystemmodel""QT_NO_FILESYSTEMMODEL"NEGATE VALUE"1")qt_feature("imageformatplugin"PUBLICSECTION"Images"LABEL"QImageIOPlugin"PURPOSE"Provides a base for writing a image format plugins.")qt_feature_definition("imageformatplugin""QT_NO_IMAGEFORMATPLUGIN"NEGATE VALUE"1")qt_feature("movie"PUBLICSECTION"Images"LABEL"QMovie"PURPOSE"Supports animated images.")qt_feature_definition("movie""QT_NO_MOVIE"NEGATE VALUE"1")qt_feature("imageformat_bmp"PUBLICSECTION"Images"LABEL"BMP Image Format"PURPOSE"Supports Microsoft's Bitmap image file format.")qt_feature_definition("imageformat_bmp""QT_NO_IMAGEFORMAT_BMP"NEGATE VALUE"1")qt_feature("imageformat_ppm"PUBLICSECTION"Images"LABEL"PPM Image Format"PURPOSE"Supports the Portable Pixmap image file format.")qt_feature_definition("imageformat_ppm""QT_NO_IMAGEFORMAT_PPM"NEGATE VALUE"1")qt_feature("imageformat_xbm"PUBLICSECTION"Images"LABEL"XBM Image Format"PURPOSE"Supports the X11 Bitmap image file format.")qt_feature_definition("imageformat_xbm""QT_NO_IMAGEFORMAT_XBM"NEGATE VALUE"1")qt_feature("imageformat_xpm"PUBLICSECTION"Images"LABEL"XPM Image Format"PURPOSE"Supports the X11 Pixmap image file format.")qt_feature_definition("imageformat_xpm""QT_NO_IMAGEFORMAT_XPM"NEGATE VALUE"1")qt_feature("imageformat_png"PUBLICSECTION"Images"LABEL"PNG Image Format"PURPOSE"Supports the Portable Network Graphics image file format.")qt_feature_definition("imageformat_png""QT_NO_IMAGEFORMAT_PNG"NEGATE VALUE"1")qt_feature("imageformat_jpeg"PUBLICSECTION"Images"LABEL"JPEG Image Format"PURPOSE"Supports the Joint Photographic Experts Group image file format.")qt_feature_definition("imageformat_jpeg""QT_NO_IMAGEFORMAT_JPEG"NEGATE VALUE"1")qt_feature("image_heuristic_mask"PUBLICSECTION"Images"LABEL"QImage::createHeuristicMask()"PURPOSE"Supports creating a 1-bpp heuristic mask for images.")qt_feature_definition("image_heuristic_mask""QT_NO_IMAGE_HEURISTIC_MASK"NEGATE VALUE"1")qt_feature("image_text"PUBLICSECTION"Images"LABEL"Image Text"PURPOSE"Supports image file text strings.")qt_feature_definition("image_text""QT_NO_IMAGE_TEXT"NEGATE VALUE"1")qt_feature("picture"PUBLICSECTION"Painting"LABEL"QPicture"PURPOSE"Supports recording and replaying QPainter commands.")qt_feature_definition("picture""QT_NO_PICTURE"NEGATE VALUE"1")qt_feature("colornames"PUBLICSECTION"Painting"LABEL"Color Names"PURPOSE"Supports color names such as\"red\", used by QColor and by some HTML documents.")qt_feature_definition("colornames""QT_NO_COLORNAMES"NEGATE VALUE"1")qt_feature("pdf"PUBLICSECTION"Painting"LABEL"QPdf"PURPOSE"Provides a PDF backend for QPainter."CONDITION QT_FEATURE_temporaryfile )qt_feature_definition("pdf""QT_NO_PDF"NEGATE VALUE"1")qt_feature("desktopservices"PUBLICSECTION"Utilities"LABEL"QDesktopServices"PURPOSE"Provides methods for accessing common desktop services.")qt_feature_definition("desktopservices""QT_NO_DESKTOPSERVICES"NEGATE VALUE"1")qt_feature("systemtrayicon"PUBLICSECTION"Utilities"LABEL"QSystemTrayIcon"PURPOSE"Provides an icon for an application in the system tray."CONDITION QT_FEATURE_temporaryfile )qt_feature_definition("systemtrayicon""QT_NO_SYSTEMTRAYICON"NEGATE VALUE"1")qt_feature("accessibility"PUBLICSECTION"Utilities"LABEL"Accessibility"PURPOSE"Provides accessibility support.")qt_feature_definition("accessibility""QT_NO_ACCESSIBILITY"NEGATE VALUE"1")qt_feature("multiprocess"PRIVATESECTION"Utilities"LABEL"Multi process"PURPOSE"Provides support for detecting the desktop environment, launching external processes and opening URLs."CONDITION NOT INTEGRITY AND NOT rtems )qt_feature("whatsthis"PUBLICSECTION"Widget Support"LABEL"QWhatsThis"PURPOSE"Supports displaying\"What's this\"help.")qt_feature_definition("whatsthis""QT_NO_WHATSTHIS"NEGATE VALUE"1")qt_feature("raster-64bit"PRIVATESECTION"Painting"LABEL"QPainter - 64 bit raster"PURPOSE"Internal painting support for 64 bit (16 bpc) rasterization.")qt_feature("raster-fp"PRIVATESECTION"Painting"LABEL"QPainter - floating point raster"PURPOSE"Internal painting support for floating point rasterization."CONDITION NOT VXWORKS# QTBUG-115777)qt_feature("qtgui-threadpool"PRIVATESECTION"Painting"LABEL"Multi-threaded image and painting helpers"PURPOSE"Multi-threaded image transforms and QPainter fills."CONDITION QT_FEATURE_thread AND NOT WASM)qt_feature("undocommand"PUBLICSECTION"Utilities"LABEL"QUndoCommand"PURPOSE"Applies (redo or) undo of a single change in a document.")qt_feature_definition("undocommand""QT_NO_UNDOCOMMAND"NEGATE VALUE"1")qt_feature("undostack"PUBLICSECTION"Utilities"LABEL"QUndoStack"PURPOSE"Provides the ability to (redo or) undo a list of changes in a document."CONDITION QT_FEATURE_undocommand )qt_feature_definition("undostack""QT_NO_UNDOSTACK"NEGATE VALUE"1")qt_feature("undogroup"PUBLICSECTION"Utilities"LABEL"QUndoGroup"PURPOSE"Provides the ability to cluster QUndoCommands."CONDITION QT_FEATURE_undostack )qt_feature("graphicsframecapture"PRIVATESECTION"Utilities"LABEL"QGraphicsFrameCapture"PURPOSE"Provides a way to capture 3D graphics API calls for a rendered frame."CONDITION TEST_renderdoc OR(MACOS OR IOS))qt_feature_definition("undogroup""QT_NO_UNDOGROUP"NEGATE VALUE"1")qt_feature("wayland"PUBLICSECTION"Platform plugins"LABEL"Wayland"CONDITION TARGET Wayland::Client )qt_configure_add_summary_section(NAME"Qt Gui")qt_configure_add_summary_entry(ARGS"accessibility")qt_configure_add_summary_entry(ARGS"emojisegmenter")qt_configure_add_summary_entry(ARGS"freetype")qt_configure_add_summary_entry(ARGS"system-freetype")qt_configure_add_summary_entry(ARGS"harfbuzz")qt_configure_add_summary_entry(ARGS"system-harfbuzz")qt_configure_add_summary_entry(ARGS"fontconfig")qt_configure_add_summary_section(NAME"Image formats")qt_configure_add_summary_entry(ARGS"gif")qt_configure_add_summary_entry(ARGS"ico")qt_configure_add_summary_entry(ARGS"jpeg")qt_configure_add_summary_entry(ARGS"system-jpeg")qt_configure_add_summary_entry(ARGS"png")qt_configure_add_summary_entry(ARGS"system-png")qt_configure_end_summary_section()# end of "Image formats" sectionqt_configure_add_summary_section(NAME"Text formats")qt_configure_add_summary_entry(ARGS"texthtmlparser")qt_configure_add_summary_entry(ARGS"cssparser")qt_configure_add_summary_entry(ARGS"textodfwriter")qt_configure_add_summary_entry(ARGS"textmarkdownreader")qt_configure_add_summary_entry(ARGS"system-textmarkdownreader")qt_configure_add_summary_entry(ARGS"textmarkdownwriter")qt_configure_end_summary_section()# end of "Text formats" sectionqt_configure_add_summary_entry(ARGS"egl")qt_configure_add_summary_entry(ARGS"openvg")qt_configure_add_summary_section(NAME"OpenGL")qt_configure_add_summary_entry(ARGS"opengl-desktop")qt_configure_add_summary_entry(ARGS"opengl-dynamic"CONDITION WIN32)qt_configure_add_summary_entry(ARGS"opengles2")qt_configure_add_summary_entry(ARGS"opengles3")qt_configure_add_summary_entry(ARGS"opengles31")qt_configure_add_summary_entry(ARGS"opengles32")qt_configure_end_summary_section()# end of "OpenGL" sectionqt_configure_add_summary_entry(ARGS"vulkan")qt_configure_add_summary_entry(ARGS"metal")qt_configure_add_summary_entry(ARGS"graphicsframecapture")qt_configure_add_summary_entry(ARGS"sessionmanager")qt_configure_add_summary_entry(ARGS"qtgui-threadpool"CONDITION QT_FEATURE_thread )qt_configure_end_summary_section()# end of "Qt Gui" sectionqt_configure_add_summary_section(NAME"Features used by QPA backends")qt_configure_add_summary_entry(ARGS"evdev")qt_configure_add_summary_entry(ARGS"libinput")qt_configure_add_summary_entry(ARGS"libinput_hires_wheel_support")qt_configure_add_summary_entry(ARGS"integrityhid")qt_configure_add_summary_entry(ARGS"mtdev")qt_configure_add_summary_entry(ARGS"tslib")qt_configure_add_summary_entry(ARGS"xkbcommon")qt_configure_add_summary_entry(ARGS"vxworksevdev")qt_configure_add_summary_section(NAME"X11 specific")qt_configure_add_summary_entry(ARGS"xlib")qt_configure_add_summary_entry(ARGS"xcb-xlib")qt_configure_add_summary_entry(ARGS"egl_x11")qt_configure_add_summary_entry(ARGS"xkbcommon-x11")qt_configure_add_summary_entry(ARGS"xcb-sm")qt_configure_end_summary_section()# end of "X11 specific" sectionqt_configure_end_summary_section()# end of "Features used by QPA backends" sectionqt_configure_add_summary_section(NAME"QPA backends")qt_configure_add_summary_entry(ARGS"directfb")qt_configure_add_summary_entry(ARGS"eglfs")qt_configure_add_summary_section(NAME"EGLFS details")qt_configure_add_summary_entry(ARGS"eglfs_openwfd")qt_configure_add_summary_entry(ARGS"eglfs_viv")qt_configure_add_summary_entry(ARGS"eglfs_viv_wl")qt_configure_add_summary_entry(ARGS"eglfs_rcar")qt_configure_add_summary_entry(ARGS"eglfs_egldevice")qt_configure_add_summary_entry(ARGS"eglfs_gbm")qt_configure_add_summary_entry(ARGS"eglfs_vsp2")qt_configure_add_summary_entry(ARGS"eglfs_mali")qt_configure_add_summary_entry(ARGS"eglfs_brcm")qt_configure_add_summary_entry(ARGS"eglfs_x11")qt_configure_end_summary_section()# end of "EGLFS details" sectionqt_configure_add_summary_entry(ARGS"linuxfb")qt_configure_add_summary_entry(ARGS"vnc")qt_configure_add_summary_entry(ARGS"vkkhrdisplay")qt_configure_add_summary_entry(ARGS"integrityfb"CONDITION INTEGRITY)qt_configure_add_summary_section(NAME"QNX")qt_configure_add_summary_entry(ARGS"lgmon")qt_configure_add_summary_entry(ARGS"qqnx_imf")qt_configure_end_summary_section()# end of "QNX" sectionqt_configure_add_summary_section(NAME"XCB")qt_configure_add_summary_entry(ARGS"system-xcb-xinput")qt_configure_add_summary_section(NAME"GL integrations")qt_configure_add_summary_entry(ARGS"xcb-glx-plugin")qt_configure_add_summary_entry(ARGS"xcb-glx")qt_configure_add_summary_entry(ARGS"xcb-egl-plugin")qt_configure_end_summary_section()# end of "GL integrations" sectionqt_configure_end_summary_section()# end of "XCB" sectionqt_configure_add_summary_section(NAME"Windows")qt_configure_add_summary_entry(ARGS"direct2d")qt_configure_add_summary_entry(ARGS"direct2d1_1")qt_configure_add_summary_entry(ARGS"directwrite")qt_configure_add_summary_entry(ARGS"directwrite3")qt_configure_add_summary_entry(ARGS"directwritecolrv1")qt_configure_end_summary_section()# end of "Windows" sectionqt_configure_end_summary_section()# end of "QPA backends" sectionqt_configure_add_report_entry(TYPE NOTEMESSAGE"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."CONDITION QT_FEATURE_xcb AND APPLE)qt_configure_add_report_entry(TYPE NOTEMESSAGE"Disabling X11 Accessibility Bridge: D-Bus or AT-SPI is missing."CONDITION QT_FEATURE_accessibility AND QT_FEATURE_xcb AND NOT QT_FEATURE_accessibility_atspi_bridge )qt_configure_add_report_entry(TYPE WARNINGMESSAGE"No QPA platform plugin enabled! This will produce a Qt that cannot run GUI applications. See\"Platform backends\"in the output of --help."CONDITION QT_FEATURE_gui AND LINUX AND NOT ANDROID AND NOT QT_FEATURE_xcb AND NOT QT_FEATURE_eglfs AND NOT QT_FEATURE_directfb AND NOT QT_FEATURE_linuxfb )qt_configure_add_report_entry(TYPE ERRORMESSAGE"The OpenGL functionality tests failed! You might need to modify the OpenGL package search path by setting the OpenGL_DIR CMake variable to the OpenGL library's installation directory."CONDITION QT_FEATURE_gui AND NOT WATCHOS AND NOT VISIONOS AND(NOT INPUT_opengl STREQUAL'no')AND NOT QT_FEATURE_opengl_desktop AND NOT QT_FEATURE_opengles2AND NOT QT_FEATURE_opengl_dynamic )qt_configure_add_report_entry(TYPE WARNINGMESSAGE"Accessibility disabled. This configuration of Qt is unsupported."CONDITION NOT QT_FEATURE_accessibility )qt_configure_add_report_entry(TYPE ERRORMESSAGE"XCB plugin requires xkbcommon and xkbcommon-x11, but -no-xkbcommon was provided."CONDITION(NOT INPUT_xcb STREQUAL'')AND(NOT INPUT_xcb STREQUAL'no')AND INPUT_xkbcommon STREQUAL'no')qt_configure_add_report_entry(TYPE ERRORMESSAGE"The desktopservices feature is required on macOS, iOS, and Android and cannot be disabled."CONDITION(APPLE OR ANDROID)AND NOT QT_FEATURE_desktopservices )
|