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_DECORATION_PLUGIN=
|
||||||
CFG_XINPUT=runtime
|
CFG_XINPUT=runtime
|
||||||
CFG_XKB=auto
|
CFG_XKB=auto
|
||||||
CFG_XCB=no
|
CFG_XCB=auto
|
||||||
CFG_NIS=auto
|
CFG_NIS=auto
|
||||||
CFG_CUPS=auto
|
CFG_CUPS=auto
|
||||||
CFG_ICONV=auto
|
CFG_ICONV=auto
|
||||||
@ -6298,6 +6298,21 @@ if [ "$PLATFORM_QPA" = "yes" ]; then
|
|||||||
QT_CONFIG="$QT_CONFIG xlib"
|
QT_CONFIG="$QT_CONFIG xlib"
|
||||||
fi
|
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
|
# Detect libxkbcommon
|
||||||
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
|
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
|
||||||
QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
|
QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
|
||||||
|
@ -37,13 +37,18 @@ HEADERS = \
|
|||||||
qxcbcursor.h \
|
qxcbcursor.h \
|
||||||
qxcbimage.h
|
qxcbimage.h
|
||||||
|
|
||||||
QT += gui-private core-private
|
|
||||||
|
|
||||||
# needed by GLX, Xcursor, XLookupString, ...
|
# 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
|
# 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) {
|
contains(QT_CONFIG, opengl) {
|
||||||
QT += opengl
|
QT += opengl
|
||||||
@ -71,8 +76,6 @@ contains(QT_CONFIG, opengl) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
LIBS += -lxcb -lxcb-image -lxcb-keysyms -lxcb-icccm -lxcb-sync -lxcb-xfixes
|
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
|
DEFINES += $$QMAKE_DEFINES_XCB
|
||||||
LIBS += $$QMAKE_LIBS_XCB
|
LIBS += $$QMAKE_LIBS_XCB
|
||||||
|
Loading…
Reference in New Issue
Block a user