diff options
Diffstat (limited to 'src/gui/configure.cmake')
-rw-r--r-- | src/gui/configure.cmake | 92 |
1 files changed, 64 insertions, 28 deletions
diff --git a/src/gui/configure.cmake b/src/gui/configure.cmake index 2c009cbc41..e1d8efb292 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,7 +28,8 @@ 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) # special case +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) @@ -54,20 +58,25 @@ 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(WrapVulkanHeaders PROVIDED_TARGETS WrapVulkanHeaders::WrapVulkanHeaders 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((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_LIB} ${X11_ICE_LIB} MODULE_NAME gui QMAKE_LIB x11sm) + 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(XCB 1.11 PROVIDED_TARGETS XCB::XCB MODULE_NAME gui QMAKE_LIB xcb) endif() 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) @@ -134,6 +143,7 @@ if((X11_SUPPORTED) OR QT_FIND_ALL_PACKAGES_ALWAYS) endif() qt_add_qmake_lib_dependency(xrender xlib) +qt_find_package(RenderDoc PROVIDED_TARGETS RenderDoc::RenderDoc) #### Tests @@ -224,6 +234,7 @@ EGLDeviceEXT device = 0; EGLStreamKHR stream = 0; EGLOutputLayerEXT layer = 0; (void) EGL_DRM_CRTC_EXT; +(void) EGL_DRM_MASTER_FD_EXT; /* END TEST: */ return 0; } @@ -271,8 +282,8 @@ qt_config_compile_test(egl_viv LABEL "i.Mx6 EGL" LIBRARIES EGL::EGL - COMPILE_OPTIONS # special case - "-DEGL_API_FB=1" # special case + COMPILE_OPTIONS + "-DEGL_API_FB=1" CODE "#include <EGL/egl.h> #include <EGL/eglvivante.h> @@ -400,11 +411,9 @@ ioctl(fd, FBIOGET_VSCREENINFO, &vinfo); ") # opengles3 -# special case begin if(WASM) set(extra_compiler_options "-s FULL_ES3=1") endif() -# special case end set(test_libs GLESv2::GLESv2) if(INTEGRITY AND _qt_igy_gui_libs) @@ -415,9 +424,7 @@ qt_config_compile_test(opengles3 LABEL "OpenGL ES 3.0" LIBRARIES ${test_libs} -# special case begin COMPILE_OPTIONS ${extra_compiler_options} -# special case end CODE "#ifdef __APPLE__ # include <OpenGLES/ES3/gl.h> @@ -479,6 +486,7 @@ 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::IMAGE XCB::KEYSYMS @@ -497,6 +505,7 @@ qt_config_compile_test(xcb_syslibs #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> @@ -545,7 +554,6 @@ libinput_event_pointer_get_scroll_value_v120(nullptr, LIBINPUT_POINTER_AXIS_SCRO } ") -# special case begin # directwrite (assumes DirectWrite2) qt_config_compile_test(directwrite LABEL "WINDOWS directwrite" @@ -572,7 +580,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; } @@ -607,14 +615,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 @@ -625,21 +646,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" @@ -661,7 +682,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" @@ -790,6 +811,10 @@ qt_feature("vulkan" PUBLIC LABEL "Vulkan" 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" @@ -843,7 +868,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" @@ -924,7 +949,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 @@ -991,7 +1016,8 @@ qt_feature("system-textmarkdownreader" PUBLIC 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" @@ -1196,6 +1222,7 @@ 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" @@ -1216,7 +1243,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") @@ -1254,6 +1293,8 @@ 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") @@ -1308,7 +1349,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 @@ -1329,14 +1370,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 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 INPUT_opengl STREQUAL 'no' ) AND NOT QT_FEATURE_opengl_desktop AND NOT QT_FEATURE_opengles2 AND NOT QT_FEATURE_opengl_dynamic + 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 |