diff options
Diffstat (limited to 'src/gui/configure.cmake')
-rw-r--r-- | src/gui/configure.cmake | 343 |
1 files changed, 206 insertions, 137 deletions
diff --git a/src/gui/configure.cmake b/src/gui/configure.cmake index 24bb8a8582..ea876c899a 100644 --- a/src/gui/configure.cmake +++ b/src/gui/configure.cmake @@ -1,3 +1,6 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + #### Inputs @@ -25,13 +28,18 @@ set_property(CACHE INPUT_libpng PROPERTY STRINGS undefined no qt system) #### Libraries - +qt_set01(X11_SUPPORTED LINUX OR HPUX OR FREEBSD OR NETBSD OR OPENBSD OR SOLARIS OR + HURD) 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(EGL PROVIDED_TARGETS EGL::EGL MODULE_NAME gui QMAKE_LIB egl) +if(INTEGRITY AND _qt_igy_gui_libs) + qt_find_package(IntegrityPlatformGraphics + PROVIDED_TARGETS IntegrityPlatformGraphics::IntegrityPlatformGraphics + MODULE_NAME gui QMAKE_LIB integrity_platform_graphics) +endif() qt_find_package(WrapSystemFreetype 2.2.0 PROVIDED_TARGETS WrapSystemFreetype::WrapSystemFreetype MODULE_NAME gui QMAKE_LIB freetype) -set_package_properties(WrapFreetype PROPERTIES TYPE REQUIRED) if(QT_FEATURE_system_zlib) qt_add_qmake_lib_dependency(freetype zlib) endif() @@ -40,7 +48,18 @@ 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.0 PROVIDED_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(JPEG PROVIDED_TARGETS JPEG::JPEG MODULE_NAME gui QMAKE_LIB libjpeg) +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) @@ -49,90 +68,92 @@ qt_find_package(Mtdev PROVIDED_TARGETS PkgConfig::Mtdev MODULE_NAME gui QMAKE_LI qt_find_package(WrapOpenGL PROVIDED_TARGETS WrapOpenGL::WrapOpenGL MODULE_NAME gui QMAKE_LIB opengl) qt_find_package(GLESv2 PROVIDED_TARGETS GLESv2::GLESv2 MODULE_NAME gui QMAKE_LIB opengl_es2) qt_find_package(Tslib PROVIDED_TARGETS PkgConfig::Tslib MODULE_NAME gui QMAKE_LIB tslib) -qt_find_package(Vulkan PROVIDED_TARGETS Vulkan::Vulkan MODULE_NAME gui QMAKE_LIB vulkan MARK_OPTIONAL) # special case +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((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +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((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) - qt_find_package(X11 PROVIDED_TARGETS ${X11_SM_LIB} ${X11_ICE_LIB} MODULE_NAME gui QMAKE_LIB x11sm) +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((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB 1.11 PROVIDED_TARGETS XCB::XCB MODULE_NAME gui QMAKE_LIB xcb) endif() -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) + qt_find_package(XCB 0.1.1 COMPONENTS 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(XCB 0.3.9 COMPONENTS ICCCM PROVIDED_TARGETS XCB::ICCCM MODULE_NAME gui QMAKE_LIB xcb_icccm) endif() qt_add_qmake_lib_dependency(xcb_icccm xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) - qt_find_package(XCB 0.3.9 COMPONENTS UTIL PROVIDED_TARGETS XCB::UTIL MODULE_NAME gui QMAKE_LIB xcb_util) -endif() -qt_add_qmake_lib_dependency(xcb_util xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB 0.3.9 COMPONENTS IMAGE PROVIDED_TARGETS XCB::IMAGE MODULE_NAME gui QMAKE_LIB xcb_image) endif() -qt_add_qmake_lib_dependency(xcb_image xcb_shm xcb_util xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +qt_add_qmake_lib_dependency(xcb_image xcb_shm xcb) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB 0.3.9 COMPONENTS KEYSYMS PROVIDED_TARGETS XCB::KEYSYMS MODULE_NAME gui QMAKE_LIB xcb_keysyms) endif() qt_add_qmake_lib_dependency(xcb_keysyms xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB 0.3.9 COMPONENTS RENDERUTIL PROVIDED_TARGETS XCB::RENDERUTIL MODULE_NAME gui QMAKE_LIB xcb_renderutil) endif() qt_add_qmake_lib_dependency(xcb_renderutil xcb xcb_render) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +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((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +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((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +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((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +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((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +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((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +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((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +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((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +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((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +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((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XCB 1.12 COMPONENTS XINPUT PROVIDED_TARGETS XCB::XINPUT MODULE_NAME gui QMAKE_LIB xcb_xinput) endif() qt_add_qmake_lib_dependency(xcb_xinput xcb) -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XKB 0.5.0 PROVIDED_TARGETS XKB::XKB MODULE_NAME gui QMAKE_LIB xkbcommon) endif() -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XKB_COMMON_X11 0.5.0 PROVIDED_TARGETS PkgConfig::XKB_COMMON_X11 MODULE_NAME gui QMAKE_LIB xkbcommon_x11) endif() -if((LINUX) OR QT_FIND_ALL_PACKAGES_ALWAYS) +if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) qt_find_package(XRender 0.6 PROVIDED_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) #### Tests @@ -148,9 +169,9 @@ extern \"C\" { #include <xf86drmMode.h> #include <xf86drm.h> } -int main(int argc, char **argv) + +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ drmModeAtomicReq *request; /* END TEST: */ @@ -170,12 +191,12 @@ qt_config_compile_test(egl_x11 // 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(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ Display *dpy = EGL_DEFAULT_DISPLAY; EGLNativeDisplayType egldpy = XOpenDisplay(\"\"); @@ -194,13 +215,11 @@ qt_config_compile_test(egl_brcm LIBRARIES EGL::EGL CODE -" -#include <EGL/egl.h> +"#include <EGL/egl.h> #include <bcm_host.h> -int main(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ vc_dispmanx_display_open(0); /* END TEST: */ @@ -215,18 +234,17 @@ qt_config_compile_test(egl_egldevice LIBRARIES EGL::EGL CODE -" -#include <EGL/egl.h> +"#include <EGL/egl.h> #include <EGL/eglext.h> -int main(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* 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; } @@ -238,14 +256,12 @@ qt_config_compile_test(egl_mali LIBRARIES EGL::EGL CODE -" -#include <EGL/fbdev_window.h> +"#include <EGL/fbdev_window.h> #include <EGL/egl.h> #include <GLES2/gl2.h> -int main(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ fbdev_window *w = 0; /* END TEST: */ @@ -259,13 +275,11 @@ qt_config_compile_test(egl_mali_2 LIBRARIES EGL::EGL CODE -" -#include <EGL/egl.h> +"#include <EGL/egl.h> #include <GLES2/gl2.h> -int main(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ mali_native_window *w = 0; /* END TEST: */ @@ -278,14 +292,14 @@ qt_config_compile_test(egl_viv LABEL "i.Mx6 EGL" LIBRARIES EGL::EGL + COMPILE_OPTIONS + "-DEGL_API_FB=1" CODE -" -#include <EGL/egl.h> +"#include <EGL/egl.h> #include <EGL/eglvivante.h> -int main(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ #ifdef __INTEGRITY fbGetDisplay(); @@ -300,18 +314,21 @@ fbGetDisplayByIndex(0); "# FIXME: qmake: ['DEFINES += EGL_API_FB=1', '!integrity: DEFINES += LINUX=1'] ) +set(test_libs EGL::EGL) +if(INTEGRITY AND _qt_igy_gui_libs) + set(test_libs ${test_libs} IntegrityPlatformGraphics::IntegrityPlatformGraphics) +endif() + # egl-openwfd qt_config_compile_test(egl_openwfd LABEL "OpenWFD EGL" LIBRARIES - EGL::EGL + ${test_libs} CODE -" -#include <wfd.h> +"#include <wfd.h> -int main(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ wfdEnumerateDevices(nullptr, 0, nullptr); /* END TEST: */ @@ -326,14 +343,13 @@ qt_config_compile_test(egl_rcar EGL::EGL GLESv2::GLESv2 CODE -" -#include <EGL/egl.h> +"#include <EGL/egl.h> extern \"C\" { extern unsigned long PVRGrfxServerInit(void); } -int main(int argc, char **argv) + +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ PVRGrfxServerInit(); /* END TEST: */ @@ -358,10 +374,8 @@ enum { e4 = SYN_REPORT, }; - -int main(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ input_event buf[32]; (void) buf; @@ -374,12 +388,10 @@ input_event buf[32]; qt_config_compile_test(integrityfb LABEL "INTEGRITY framebuffer" CODE -" -#include <device/fbdriver.h> +"#include <device/fbdriver.h> -int main(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ FBDriver *driver = 0; /* END TEST: */ @@ -391,14 +403,12 @@ FBDriver *driver = 0; qt_config_compile_test(linuxfb LABEL "LinuxFB" CODE -" -#include <linux/fb.h> +"#include <linux/fb.h> #include <sys/kd.h> #include <sys/ioctl.h> -int main(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ fb_fix_screeninfo finfo; fb_var_screeninfo vinfo; @@ -411,10 +421,20 @@ ioctl(fd, FBIOGET_VSCREENINFO, &vinfo); ") # opengles3 +if(WASM) + set(extra_compiler_options "-s FULL_ES3=1") +endif() + +set(test_libs GLESv2::GLESv2) +if(INTEGRITY AND _qt_igy_gui_libs) + set(test_libs ${test_libs} IntegrityPlatformGraphics::IntegrityPlatformGraphics) +endif() + qt_config_compile_test(opengles3 LABEL "OpenGL ES 3.0" LIBRARIES - GLESv2::GLESv2 + ${test_libs} + COMPILE_OPTIONS ${extra_compiler_options} CODE "#ifdef __APPLE__ # include <OpenGLES/ES3/gl.h> @@ -423,10 +443,8 @@ qt_config_compile_test(opengles3 # include <GLES3/gl3.h> #endif - -int main(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ static GLfloat f[6]; glGetStringi(GL_EXTENSIONS, 0); @@ -438,18 +456,17 @@ glMapBufferRange(GL_ARRAY_BUFFER, 0, 0, GL_MAP_READ_BIT); } ") + # opengles31 qt_config_compile_test(opengles31 LABEL "OpenGL ES 3.1" LIBRARIES - GLESv2::GLESv2 + ${test_libs} CODE -" -#include <GLES3/gl31.h> +"#include <GLES3/gl31.h> -int main(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ glDispatchCompute(1, 1, 1); glProgramUniform1i(0, 0, 0); @@ -462,14 +479,12 @@ glProgramUniform1i(0, 0, 0); qt_config_compile_test(opengles32 LABEL "OpenGL ES 3.2" LIBRARIES - GLESv2::GLESv2 + ${test_libs} CODE -" -#include <GLES3/gl32.h> +"#include <GLES3/gl32.h> -int main(int argc, char **argv) +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ glFramebufferTexture(GL_TEXTURE_2D, GL_DEPTH_STENCIL_ATTACHMENT, 1, 0); /* END TEST: */ @@ -481,8 +496,8 @@ glFramebufferTexture(GL_TEXTURE_2D, GL_DEPTH_STENCIL_ATTACHMENT, 1, 0); qt_config_compile_test(xcb_syslibs LABEL "XCB (extensions)" LIBRARIES + XCB::CURSOR XCB::ICCCM - XCB::UTIL XCB::IMAGE XCB::KEYSYMS XCB::RANDR @@ -498,9 +513,9 @@ qt_config_compile_test(xcb_syslibs "// 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_util.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> @@ -511,9 +526,9 @@ qt_config_compile_test(xcb_syslibs #include <xcb/xcb_renderutil.h> #include <xcb/xkb.h> #undef explicit -int main(int argc, char **argv) + +int main(void) { - (void)argc; (void)argv; /* BEGIN TEST: */ int primaryScreen = 0; xcb_connection_t *c = xcb_connect(\"\", &primaryScreen); @@ -532,7 +547,23 @@ xcb_xkb_get_kbd_by_name_replies_key_names_value_list_sizeof(nullptr, 0, 0, 0, 0, } ") -# special case begin +# libinput_hires_wheel_support +qt_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" @@ -559,7 +590,7 @@ qt_config_compile_test(directwrite3 int main(int, char **) { IUnknown *factory = nullptr; - DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory3), + DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory6), &factory); return 0; } @@ -574,7 +605,8 @@ qt_config_compile_test(d2d1 int main(int, char **) { void *factory = nullptr; - D2D1_FACTORY_OPTIONS options{0}; + D2D1_FACTORY_OPTIONS options; + ZeroMemory(&options, sizeof(D2D1_FACTORY_OPTIONS)); D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, GUID{}, &options, &factory); return 0; } @@ -593,14 +625,27 @@ int main(int, char **) return 0; } ") -# special case end + +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; +} +") #### Features qt_feature("accessibility-atspi-bridge" PUBLIC PRIVATE LABEL "ATSPI Bridge" - CONDITION QT_FEATURE_accessibility AND QT_FEATURE_xcb AND QT_FEATURE_dbus AND ATSPI2_FOUND + 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" PRIVATE @@ -611,21 +656,21 @@ qt_feature("directfb" PRIVATE ) qt_feature("directwrite" PRIVATE LABEL "DirectWrite" - CONDITION TEST_directwrite # special case + CONDITION TEST_directwrite EMIT_IF WIN32 ) qt_feature("directwrite3" PRIVATE LABEL "DirectWrite 3" - CONDITION QT_FEATURE_directwrite AND TEST_directwrite3 # special case + CONDITION QT_FEATURE_directwrite AND TEST_directwrite3 EMIT_IF WIN32 ) qt_feature("direct2d" PRIVATE LABEL "Direct 2D" - CONDITION WIN32 AND NOT WINRT AND TEST_d2d1 # special case + CONDITION WIN32 AND NOT WINRT AND TEST_d2d1 ) qt_feature("direct2d1_1" PRIVATE LABEL "Direct 2D 1.1" - CONDITION QT_FEATURE_direct2d AND TEST_d2d1_1 # special case + CONDITION QT_FEATURE_direct2d AND TEST_d2d1_1 ) qt_feature("evdev" PRIVATE LABEL "evdev" @@ -637,7 +682,7 @@ qt_feature("freetype" PUBLIC PRIVATE 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 +qt_feature("system-freetype" PRIVATE SYSTEM_LIBRARY LABEL " Using system FreeType" AUTODETECT NOT MSVC CONDITION QT_FEATURE_freetype AND WrapSystemFreetype_FOUND @@ -647,7 +692,7 @@ qt_feature("system-freetype" PRIVATE qt_feature("fontconfig" PUBLIC PRIVATE LABEL "Fontconfig" AUTODETECT NOT APPLE - CONDITION NOT WIN32 AND QT_FEATURE_system_freetype AND FONTCONFIG_FOUND + CONDITION NOT WIN32 AND QT_FEATURE_system_freetype AND Fontconfig_FOUND ) qt_feature_definition("fontconfig" "QT_NO_FONTCONFIG" NEGATE VALUE "1") qt_feature("gbm" @@ -659,7 +704,7 @@ qt_feature("harfbuzz" PUBLIC PRIVATE LABEL "HarfBuzz" ) qt_feature_definition("harfbuzz" "QT_NO_HARFBUZZ" NEGATE VALUE "1") -qt_feature("system-harfbuzz" PRIVATE +qt_feature("system-harfbuzz" PRIVATE SYSTEM_LIBRARY LABEL " Using system HarfBuzz" AUTODETECT NOT APPLE AND NOT WIN32 CONDITION QT_FEATURE_harfbuzz AND WrapSystemHarfbuzz_FOUND @@ -697,6 +742,10 @@ qt_feature("libinput-axis-api" PRIVATE LABEL "axis API in libinput" CONDITION QT_FEATURE_libinput AND ON ) +qt_feature("libinput-hires-wheel-support" PRIVATE + LABEL "HiRes wheel support in libinput" + CONDITION QT_FEATURE_libinput AND TEST_libinput_hires_wheel_support +) qt_feature("lgmon" LABEL "lgmon" CONDITION libs.lgmon OR FIXME @@ -770,13 +819,22 @@ qt_feature("vkgen" PRIVATE ) qt_feature("vulkan" PUBLIC LABEL "Vulkan" - CONDITION QT_FEATURE_vkgen AND Vulkan_FOUND + CONDITION QT_FEATURE_library AND QT_FEATURE_vkgen AND WrapVulkanHeaders_FOUND +) +qt_feature("metal" PUBLIC + LABEL "Metal" + CONDITION MACOS OR IOS OR VISIONOS +) +qt_feature("vkkhrdisplay" PRIVATE + SECTION "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" PUBLIC LABEL "OpenVG" CONDITION libs.openvg OR FIXME ) -qt_feature("egl" PUBLIC PRIVATE +qt_feature("egl" PUBLIC LABEL "EGL" CONDITION ( QT_FEATURE_opengl OR QT_FEATURE_openvg ) AND EGL_FOUND AND ( QT_FEATURE_dlopen OR NOT UNIX OR INTEGRITY ) ) @@ -788,7 +846,7 @@ qt_feature("egl_x11" PRIVATE qt_feature("eglfs" PRIVATE SECTION "Platform plugins" LABEL "EGLFS" - CONDITION NOT ANDROID AND NOT APPLE AND NOT WIN32 AND NOT WASM AND QT_FEATURE_egl + CONDITION NOT ANDROID AND NOT APPLE AND NOT WIN32 AND NOT WASM AND NOT QNX AND QT_FEATURE_egl ) qt_feature("eglfs_brcm" PRIVATE LABEL "EGLFS Raspberry Pi" @@ -820,7 +878,7 @@ qt_feature("eglfs_rcar" PRIVATE ) qt_feature("eglfs_viv_wl" PRIVATE LABEL "EGLFS i.Mx6 Wayland" - CONDITION QT_FEATURE_eglfs_viv AND Wayland_FOUND + CONDITION QT_FEATURE_eglfs_viv AND TARGET Wayland::Server ) qt_feature("eglfs_openwfd" PRIVATE LABEL "EGLFS OpenWFD" @@ -830,13 +888,6 @@ qt_feature("eglfs_x11" PRIVATE LABEL "EGLFS X11" CONDITION QT_FEATURE_eglfs AND QT_FEATURE_xcb_xlib AND QT_FEATURE_egl_x11 ) -qt_feature("filesystemmodel" PUBLIC - SECTION "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("gif" PRIVATE LABEL "GIF" CONDITION QT_FEATURE_imageformatplugin @@ -852,8 +903,8 @@ qt_feature("jpeg" PRIVATE CONDITION QT_FEATURE_imageformatplugin DISABLE INPUT_libjpeg STREQUAL 'no' ) -qt_feature_definition("jpeg" "QT_NO_IMAGEFORMAT_JPEG" NEGATE) -qt_feature("system-jpeg" PRIVATE +qt_feature_definition("jpeg" "QT_NO_IMAGEFORMAT_JPEG" NEGATE VALUE "1") +qt_feature("system-jpeg" PRIVATE SYSTEM_LIBRARY LABEL " Using system libjpeg" CONDITION QT_FEATURE_jpeg AND JPEG_FOUND ENABLE INPUT_libjpeg STREQUAL 'system' @@ -864,7 +915,7 @@ qt_feature("png" PRIVATE DISABLE INPUT_libpng STREQUAL 'no' ) qt_feature_definition("png" "QT_NO_IMAGEFORMAT_PNG" NEGATE) -qt_feature("system-png" PRIVATE +qt_feature("system-png" PRIVATE SYSTEM_LIBRARY LABEL " Using system libpng" AUTODETECT QT_FEATURE_system_zlib CONDITION QT_FEATURE_png AND WrapSystemPNG_FOUND @@ -883,20 +934,20 @@ qt_feature("sessionmanager" PUBLIC qt_feature_definition("sessionmanager" "QT_NO_SESSIONMANAGER" NEGATE VALUE "1") qt_feature("tslib" PRIVATE LABEL "tslib" - CONDITION Tslib_FOUND + CONDITION Tslib_FOUND AND NOT INTEGRITY ) qt_feature("tuiotouch" PRIVATE LABEL "TuioTouch" PURPOSE "Provides the TuioTouch input plugin." CONDITION QT_FEATURE_network AND QT_FEATURE_udpsocket ) -qt_feature("xcb" PRIVATE +qt_feature("xcb" PUBLIC SECTION "Platform plugins" LABEL "XCB" AUTODETECT NOT APPLE CONDITION QT_FEATURE_thread AND TARGET XCB::XCB AND TEST_xcb_syslibs AND QT_FEATURE_xkbcommon_x11 ) -qt_feature("xcb-glx-plugin" PRIVATE +qt_feature("xcb-glx-plugin" PUBLIC LABEL "GLX Plugin" CONDITION QT_FEATURE_xcb_xlib AND QT_FEATURE_opengl AND NOT QT_FEATURE_opengles2 EMIT_IF QT_FEATURE_xcb @@ -908,7 +959,7 @@ qt_feature("xcb-glx" PRIVATE ) qt_feature("xcb-egl-plugin" PRIVATE LABEL "EGL-X11 Plugin" - CONDITION QT_FEATURE_egl_x11 AND QT_FEATURE_opengl + CONDITION QT_FEATURE_egl AND QT_FEATURE_opengl EMIT_IF QT_FEATURE_xcb ) qt_feature("xcb-native-painting" PRIVATE @@ -931,8 +982,9 @@ qt_feature("xcb-sm" PRIVATE CONDITION QT_FEATURE_sessionmanager AND X11_SM_FOUND EMIT_IF QT_FEATURE_xcb ) -qt_feature("system-xcb-xinput" PRIVATE +qt_feature("system-xcb-xinput" PRIVATE SYSTEM_LIBRARY LABEL "Using system-provided xcb-xinput" + AUTODETECT OFF CONDITION XCB_XINPUT_FOUND ENABLE INPUT_bundled_xcb_xinput STREQUAL 'no' DISABLE INPUT_bundled_xcb_xinput STREQUAL 'yes' @@ -964,17 +1016,18 @@ qt_feature("textmarkdownreader" PUBLIC 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 +qt_feature("system-textmarkdownreader" PUBLIC SYSTEM_LIBRARY SECTION "Kernel" LABEL " Using system libmd4c" - CONDITION libs.libmd4c OR FIXME + CONDITION QT_FEATURE_textmarkdownreader AND WrapSystemMd4c_FOUND ENABLE INPUT_libmd4c STREQUAL 'system' DISABLE INPUT_libmd4c STREQUAL 'qt' ) qt_feature("textmarkdownwriter" PUBLIC SECTION "Kernel" LABEL "MarkdownWriter" - PURPOSE "Provides a Markdown (CommonMark) writer" + CONDITION QT_FEATURE_regularexpression + PURPOSE "Provides a Markdown (CommonMark and GitHub) writer" ) qt_feature("textodfwriter" PUBLIC SECTION "Kernel" @@ -992,7 +1045,7 @@ qt_feature_definition("cssparser" "QT_NO_CSSPARSER" NEGATE VALUE "1") qt_feature("draganddrop" PUBLIC SECTION "Kernel" LABEL "Drag and Drop" - PURPOSE "Supports the drag and drop mechansim." + PURPOSE "Supports the drag and drop mechanism." CONDITION QT_FEATURE_imageformat_xpm ) qt_feature_definition("draganddrop" "QT_NO_DRAGANDDROP" NEGATE VALUE "1") @@ -1156,7 +1209,6 @@ qt_feature("accessibility" PUBLIC SECTION "Utilities" LABEL "Accessibility" PURPOSE "Provides accessibility support." - CONDITION QT_FEATURE_properties ) qt_feature_definition("accessibility" "QT_NO_ACCESSIBILITY" NEGATE VALUE "1") qt_feature("multiprocess" PRIVATE @@ -1176,6 +1228,12 @@ qt_feature("raster-64bit" PRIVATE LABEL "QPainter - 64 bit raster" PURPOSE "Internal painting support for 64 bit (16 bpc) rasterization." ) +qt_feature("raster-fp" PRIVATE + SECTION "Painting" + LABEL "QPainter - floating point raster" + PURPOSE "Internal painting support for floating point rasterization." + CONDITION NOT VXWORKS # QTBUG-115777 +) qt_feature("undocommand" PUBLIC SECTION "Utilities" LABEL "QUndoCommand" @@ -1195,7 +1253,19 @@ qt_feature("undogroup" PUBLIC PURPOSE "Provides the ability to cluster QUndoCommands." CONDITION QT_FEATURE_undostack ) +qt_feature("graphicsframecapture" PRIVATE + SECTION "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" PUBLIC + SECTION "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 "freetype") @@ -1233,11 +1303,14 @@ qt_configure_add_summary_entry(ARGS "opengles31") qt_configure_add_summary_entry(ARGS "opengles32") qt_configure_end_summary_section() # end of "OpenGL" section qt_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_end_summary_section() # end of "Qt Gui" section qt_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") @@ -1247,6 +1320,7 @@ 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" section qt_configure_end_summary_section() # end of "Features used by QPA backends" section qt_configure_add_summary_section(NAME "QPA backends") @@ -1266,6 +1340,7 @@ qt_configure_add_summary_entry(ARGS "eglfs_x11") qt_configure_end_summary_section() # end of "EGLFS details" section qt_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 @@ -1276,7 +1351,6 @@ qt_configure_add_summary_entry(ARGS "qqnx_imf") qt_configure_end_summary_section() # end of "QNX" section qt_configure_add_summary_section(NAME "XCB") qt_configure_add_summary_entry(ARGS "system-xcb-xinput") -qt_configure_add_summary_entry(ARGS "xcb-native-painting") 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") @@ -1285,7 +1359,7 @@ qt_configure_end_summary_section() # end of "GL integrations" section qt_configure_end_summary_section() # end of "XCB" section qt_configure_add_summary_section(NAME "Windows") qt_configure_add_summary_entry(ARGS "direct2d") -qt_configure_add_summary_entry(ARGS "direct2d1_1") ### special case +qt_configure_add_summary_entry(ARGS "direct2d1_1") qt_configure_add_summary_entry(ARGS "directwrite") qt_configure_add_summary_entry(ARGS "directwrite3") qt_configure_end_summary_section() # end of "Windows" section @@ -1306,14 +1380,9 @@ qt_configure_add_report_entry( 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 WARNING - MESSAGE "On OS X, AAT is supported only with -qt-harfbuzz." - CONDITION APPLE AND QT_FEATURE_system_harfbuzz -) -qt_configure_add_report_entry( TYPE ERROR - 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." - CONDITION QT_FEATURE_gui AND NOT WATCHOS AND ( NOT INPUT_opengl STREQUAL 'no' ) AND NOT QT_FEATURE_opengl_desktop AND NOT QT_FEATURE_opengles2 AND NOT QT_FEATURE_opengl_dynamic + MESSAGE "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_opengles2 AND NOT QT_FEATURE_opengl_dynamic ) qt_configure_add_report_entry( TYPE WARNING |