From d34cae51fa7b3952b651401c9e43ffd7b3d0d32c Mon Sep 17 00:00:00 2001 From: Andrew Knight Date: Thu, 28 Nov 2013 13:07:09 +0200 Subject: Add new configure parameter for Xcb-Xlib MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds a new configuration parameter, xcb-xlib, which allows overriding the configure test for that existing configuration option. The use of xcb-xlib in the xcb platform plugin becomes the preferred path for non-OpenGL ES 2 builds, while the EGL codepath is used otherwise. This has the advantage that EGL can be used with Desktop OpenGL if Qt is configured with -no-xcb-xlib. Change-Id: I5018e31fe0399b94f020c671eff9414d00431c44 Reviewed-by: Jørgen Lind --- configure | 18 ++++++++++++++++-- src/plugins/platforms/xcb/xcb-plugin.pro | 18 +++++++++--------- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/configure b/configure index 72c13ab75d..a20fdaa0bc 100755 --- a/configure +++ b/configure @@ -647,6 +647,7 @@ CFG_XINPUT=runtime CFG_XKB=auto CFG_XKBCOMMON=auto CFG_XCB=auto +CFG_XCB_XLIB=auto CFG_XCB_GLX=no CFG_EGLFS=auto CFG_DIRECTFB=auto @@ -1690,6 +1691,13 @@ while [ "$#" -gt 0 ]; do UNKNOWN_OPT=yes fi ;; + xcb-xlib) + if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then + CFG_XCB_XLIB="$VAL" + else + UNKNOWN_OPT=yes + fi + ;; wayland) CFG_OBSOLETE_WAYLAND=yes ;; @@ -2335,6 +2343,9 @@ Third Party Libraries: -no-xinput2 ........ Do not compile XInput2 support. * -xinput2 ........... Compile XInput2 support. + -no-xcb-xlib........ Do not compile Xcb-Xlib support. + * -xcb-xlib........... Compile Xcb-Xlib support. + -no-glib ........... Do not compile Glib support. + -glib .............. Compile Glib support. @@ -5128,8 +5139,10 @@ if [ "$CFG_XCB" != "no" ]; then exit 1 fi - if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then - QT_CONFIG="$QT_CONFIG xcb-xlib" + if [ "$CFG_XCB_XLIB" != "no" ]; then + if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then + QT_CONFIG="$QT_CONFIG xcb-xlib" + fi fi if [ "$CFG_SM" != "no" ] && [ -n "$PKG_CONFIG" ]; then @@ -6694,6 +6707,7 @@ report_support " LinuxFB .............." "$CFG_LINUXFB" report_support " XCB .................." "$CFG_XCB" system "system library" qt "bundled copy" if [ "$CFG_XCB" != "no" ]; then report_support " MIT-SHM ............" "$CFG_MITSHM" + report_support " Xcb-Xlib ..........." "$CFG_XCB_XLIB" report_support " Xcursor ............" "$CFG_XCURSOR" runtime "loaded at runtime" report_support " Xfixes ............." "$CFG_XFIXES" runtime "loaded at runtime" report_support " Xi ................." "$CFG_XINPUT" runtime "loaded at runtime" diff --git a/src/plugins/platforms/xcb/xcb-plugin.pro b/src/plugins/platforms/xcb/xcb-plugin.pro index 4f69ca8aab..8968d020c4 100644 --- a/src/plugins/platforms/xcb/xcb-plugin.pro +++ b/src/plugins/platforms/xcb/xcb-plugin.pro @@ -81,15 +81,7 @@ contains(QT_CONFIG, xcb-sm) { } contains(QT_CONFIG, opengl) { - contains(QT_CONFIG, opengles2) { - DEFINES += XCB_USE_EGL - CONFIG += egl - HEADERS += qxcbeglsurface.h - - # EGL on MeeGo 1.2 Harmattan needs this macro to map EGLNativeDisplayType - # and other types to the correct X11 types - DEFINES += SUPPORT_X11 - } else:contains(QT_CONFIG, xcb-xlib) { + contains(QT_CONFIG, xcb-xlib):!contains(QT_CONFIG, opengles2) { DEFINES += XCB_USE_GLX HEADERS += qglxintegration.h SOURCES += qglxintegration.cpp @@ -98,6 +90,14 @@ contains(QT_CONFIG, opengl) { DEFINES += XCB_HAS_XCB_GLX LIBS += -lxcb-glx } + } else:contains(QT_CONFIG, egl) { + DEFINES += XCB_USE_EGL + CONFIG += egl + HEADERS += qxcbeglsurface.h + + # EGL on MeeGo 1.2 Harmattan needs this macro to map EGLNativeDisplayType + # and other types to the correct X11 types + DEFINES += SUPPORT_X11 } } -- cgit v1.2.3