[PATCH RFC weston 3/4] compositor-x11: Remove support for ancient XCB
Daniel Stone
daniels at collabora.com
Tue Nov 29 17:00:02 UTC 2016
We had two non-pkg-config check paths in the configure script, to
support XCB functionality used before XCB had had an accompanying
release: xcb_poll_for_queued_event (released in 1.8, 2012), and a
usable XKB event mechanism (released in 1.9, 2013).
Convert the former to a version-based hard dependency, and the latter to
a version-based soft dependency. This avoids two compiler checks.
Signed-off-by: Daniel Stone <daniels at collabora.com>
---
configure.ac | 21 ++-------------------
libweston/compositor-x11.c | 9 ++-------
2 files changed, 4 insertions(+), 26 deletions(-)
diff --git a/configure.ac b/configure.ac
index 1e251bf..7d5eaa1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -183,29 +183,12 @@ AC_ARG_ENABLE(x11-compositor, [ --enable-x11-compositor],,
enable_x11_compositor=yes)
AM_CONDITIONAL(ENABLE_X11_COMPOSITOR, test x$enable_x11_compositor = xyes)
if test x$enable_x11_compositor = xyes; then
- PKG_CHECK_MODULES([XCB], xcb)
- xcb_save_LIBS=$LIBS
- xcb_save_CFLAGS=$CFLAGS
- CFLAGS=$XCB_CFLAGS
- LIBS=$XCB_LIBS
- AC_CHECK_FUNCS([xcb_poll_for_queued_event])
- LIBS=$xcb_save_LIBS
- CFLAGS=$xcb_save_CFLAGS
-
+ PKG_CHECK_MODULES([XCB], xcb >= 1.8)
X11_COMPOSITOR_MODULES="x11 x11-xcb xcb-shm"
- PKG_CHECK_MODULES(X11_COMPOSITOR_XKB, [xcb-xkb],
+ PKG_CHECK_MODULES(X11_COMPOSITOR_XKB, [xcb-xkb >= 1.9],
[have_xcb_xkb="yes"], [have_xcb_xkb="no"])
if test "x$have_xcb_xkb" = xyes; then
- # Most versions of XCB have totally broken XKB bindings, where the
- # events don't work. Make sure we can actually use them.
- xcb_xkb_save_CFLAGS=$CFLAGS
- CFLAGS=$X11_COMPOSITOR_XKB_CFLAGS
- AC_CHECK_MEMBER([struct xcb_xkb_state_notify_event_t.xkbType],
- [], [have_xcb_xkb=no], [[#include <xcb/xkb.h>]])
- CFLAGS=$xcb_xkb_save_CFLAGS
- fi
- if test "x$have_xcb_xkb" = xyes; then
X11_COMPOSITOR_MODULES="$X11_COMPOSITOR_MODULES xcb-xkb"
AC_DEFINE([HAVE_XCB_XKB], [1], [libxcb supports XKB protocol])
fi
diff --git a/libweston/compositor-x11.c b/libweston/compositor-x11.c
index 34ef854..627bb15 100644
--- a/libweston/compositor-x11.c
+++ b/libweston/compositor-x11.c
@@ -1298,15 +1298,10 @@ static int
x11_backend_next_event(struct x11_backend *b,
xcb_generic_event_t **event, uint32_t mask)
{
- if (mask & WL_EVENT_READABLE) {
+ if (mask & WL_EVENT_READABLE)
*event = xcb_poll_for_event(b->conn);
- } else {
-#ifdef HAVE_XCB_POLL_FOR_QUEUED_EVENT
+ else
*event = xcb_poll_for_queued_event(b->conn);
-#else
- *event = xcb_poll_for_event(b->conn);
-#endif
- }
return *event != NULL;
}
--
2.9.3
More information about the wayland-devel
mailing list