summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config.tests/qpa/xcb-render/xcb-render.cpp72
-rw-r--r--config.tests/qpa/xcb-render/xcb-render.pro5
-rw-r--r--config.tests/qpa/xcb-xlib/xcb-xlib.cpp52
-rw-r--r--config.tests/qpa/xcb-xlib/xcb-xlib.pro5
-rw-r--r--config.tests/qpa/xcb/xcb.cpp57
-rw-r--r--config.tests/qpa/xcb/xcb.pro5
-rwxr-xr-xconfigure17
-rw-r--r--src/plugins/platforms/xcb/xcb.pro13
8 files changed, 220 insertions, 6 deletions
diff --git a/config.tests/qpa/xcb-render/xcb-render.cpp b/config.tests/qpa/xcb-render/xcb-render.cpp
new file mode 100644
index 0000000000..9e6c9c847c
--- /dev/null
+++ b/config.tests/qpa/xcb-render/xcb-render.cpp
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the config.tests of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <xcb/xcb.h>
+#include <xcb/render.h>
+
+// 'template' is used as a function argument name in xcb_renderutil.h
+#define template template_param
+// extern "C" is missing too
+extern "C" {
+#include <xcb/xcb_renderutil.h>
+}
+#undef template
+
+int main(int, char **)
+{
+ int primaryScreen = 0;
+ xcb_generic_error_t *error = 0;
+
+ xcb_connection_t *connection = xcb_connect("", &primaryScreen);
+ xcb_render_query_pict_formats_cookie_t formatsCookie =
+ xcb_render_query_pict_formats(connection);
+
+ xcb_render_query_pict_formats_reply_t *formatsReply =
+ xcb_render_query_pict_formats_reply(
+ connection,
+ formatsCookie,
+ &error);
+
+ xcb_render_util_find_standard_format(formatsReply,
+ XCB_PICT_STANDARD_ARGB_32);
+
+ return 0;
+}
diff --git a/config.tests/qpa/xcb-render/xcb-render.pro b/config.tests/qpa/xcb-render/xcb-render.pro
new file mode 100644
index 0000000000..33526fad0d
--- /dev/null
+++ b/config.tests/qpa/xcb-render/xcb-render.pro
@@ -0,0 +1,5 @@
+SOURCES = xcb-render.cpp
+CONFIG -= qt
+
+LIBS += -lxcb-render -lxcb-render-util
+
diff --git a/config.tests/qpa/xcb-xlib/xcb-xlib.cpp b/config.tests/qpa/xcb-xlib/xcb-xlib.cpp
new file mode 100644
index 0000000000..ede80d6360
--- /dev/null
+++ b/config.tests/qpa/xcb-xlib/xcb-xlib.cpp
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the config.tests of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <xcb/xcb.h>
+#include <X11/Xlib.h>
+#include <X11/Xlib-xcb.h>
+
+int main(int, char **)
+{
+ Display *dpy = XOpenDisplay("");
+ xcb_connection_t *connection = XGetXCBConnection(dpy);
+
+ return 0;
+}
diff --git a/config.tests/qpa/xcb-xlib/xcb-xlib.pro b/config.tests/qpa/xcb-xlib/xcb-xlib.pro
new file mode 100644
index 0000000000..03250b4480
--- /dev/null
+++ b/config.tests/qpa/xcb-xlib/xcb-xlib.pro
@@ -0,0 +1,5 @@
+SOURCES = xcb-xlib.cpp
+CONFIG -= qt
+
+LIBS += -lxcb -lX11 -lX11-xcb
+
diff --git a/config.tests/qpa/xcb/xcb.cpp b/config.tests/qpa/xcb/xcb.cpp
new file mode 100644
index 0000000000..71b30fea5a
--- /dev/null
+++ b/config.tests/qpa/xcb/xcb.cpp
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the config.tests of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <xcb/xcb.h>
+#include <xcb/xcb_icccm.h>
+#include <xcb/xfixes.h>
+#include <xcb/xcb_image.h>
+#include <xcb/xcb_keysyms.h>
+#include <xcb/sync.h>
+#include <xcb/shm.h>
+
+int main(int, char **)
+{
+ int primaryScreen = 0;
+
+ xcb_connection_t *connection = xcb_connect("", &primaryScreen);
+
+ return 0;
+}
diff --git a/config.tests/qpa/xcb/xcb.pro b/config.tests/qpa/xcb/xcb.pro
new file mode 100644
index 0000000000..ed68bca242
--- /dev/null
+++ b/config.tests/qpa/xcb/xcb.pro
@@ -0,0 +1,5 @@
+SOURCES = xcb.cpp
+CONFIG -= qt
+
+LIBS += -lxcb -lxcb-image -lxcb-keysyms -lxcb-icccm -lxcb-sync -lxcb-xfixes
+
diff --git a/configure b/configure
index 74fa27352b..5539df0e3f 100755
--- a/configure
+++ b/configure
@@ -751,7 +751,7 @@ CFG_DECORATION_PLUGIN_AVAILABLE=
CFG_DECORATION_PLUGIN=
CFG_XINPUT=runtime
CFG_XKB=auto
-CFG_XCB=no
+CFG_XCB=auto
CFG_NIS=auto
CFG_CUPS=auto
CFG_ICONV=auto
@@ -6298,6 +6298,21 @@ if [ "$PLATFORM_QPA" = "yes" ]; then
QT_CONFIG="$QT_CONFIG xlib"
fi
+ if [ "$CFG_XCB" != "no" ]; then
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb "xcb" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ CFG_XCB=yes
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-render "xcb-render" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ QT_CONFIG="$QT_CONFIG xcb-render"
+ fi
+
+ if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-xlib "xcb-xlib" $L_FLAGS $I_FLAGS $l_FLAGS; then
+ QT_CONFIG="$QT_CONFIG xcb-xlib"
+ fi
+ else
+ CFG_XCB=no
+ fi
+ fi
+
# Detect libxkbcommon
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
diff --git a/src/plugins/platforms/xcb/xcb.pro b/src/plugins/platforms/xcb/xcb.pro
index c8814b04f6..e5d9b98bd0 100644
--- a/src/plugins/platforms/xcb/xcb.pro
+++ b/src/plugins/platforms/xcb/xcb.pro
@@ -37,13 +37,18 @@ HEADERS = \
qxcbcursor.h \
qxcbimage.h
-QT += gui-private core-private
# needed by GLX, Xcursor, XLookupString, ...
-DEFINES += XCB_USE_XLIB
+contains(QT_CONFIG, xcb-xlib) {
+ DEFINES += XCB_USE_XLIB
+ LIBS += -lX11 -lX11-xcb
+}
# to support custom cursors with depth > 1
-DEFINES += XCB_USE_RENDER
+contains(QT_CONFIG, xcb-render) {
+ DEFINES += XCB_USE_RENDER
+ LIBS += -lxcb-render -lxcb-render-util
+}
contains(QT_CONFIG, opengl) {
QT += opengl
@@ -71,8 +76,6 @@ contains(QT_CONFIG, opengl) {
}
LIBS += -lxcb -lxcb-image -lxcb-keysyms -lxcb-icccm -lxcb-sync -lxcb-xfixes
-contains(DEFINES, XCB_USE_XLIB): LIBS += -lX11 -lX11-xcb
-contains(DEFINES, XCB_USE_RENDER): LIBS += -lxcb-render -lxcb-render-util
DEFINES += $$QMAKE_DEFINES_XCB
LIBS += $$QMAKE_LIBS_XCB