Autodetect the xcb backend
This commit is contained in:
parent
1ee96f093a
commit
297407bdc6
72
config.tests/qpa/xcb-render/xcb-render.cpp
Normal file
72
config.tests/qpa/xcb-render/xcb-render.cpp
Normal file
@ -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;
|
||||
}
|
5
config.tests/qpa/xcb-render/xcb-render.pro
Normal file
5
config.tests/qpa/xcb-render/xcb-render.pro
Normal file
@ -0,0 +1,5 @@
|
||||
SOURCES = xcb-render.cpp
|
||||
CONFIG -= qt
|
||||
|
||||
LIBS += -lxcb-render -lxcb-render-util
|
||||
|
52
config.tests/qpa/xcb-xlib/xcb-xlib.cpp
Normal file
52
config.tests/qpa/xcb-xlib/xcb-xlib.cpp
Normal file
@ -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;
|
||||
}
|
5
config.tests/qpa/xcb-xlib/xcb-xlib.pro
Normal file
5
config.tests/qpa/xcb-xlib/xcb-xlib.pro
Normal file
@ -0,0 +1,5 @@
|
||||
SOURCES = xcb-xlib.cpp
|
||||
CONFIG -= qt
|
||||
|
||||
LIBS += -lxcb -lX11 -lX11-xcb
|
||||
|
57
config.tests/qpa/xcb/xcb.cpp
Normal file
57
config.tests/qpa/xcb/xcb.cpp
Normal file
@ -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;
|
||||
}
|
5
config.tests/qpa/xcb/xcb.pro
Normal file
5
config.tests/qpa/xcb/xcb.pro
Normal file
@ -0,0 +1,5 @@
|
||||
SOURCES = xcb.cpp
|
||||
CONFIG -= qt
|
||||
|
||||
LIBS += -lxcb -lxcb-image -lxcb-keysyms -lxcb-icccm -lxcb-sync -lxcb-xfixes
|
||||
|
17
configure
vendored
17
configure
vendored
@ -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`"
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user