On 29/11/2016 18:00, Daniel Stone wrote:
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 <dani...@collabora.com>

A good thing to do even without Meson:
Reviewed-by: Quentin Glidic <sardemff7+...@sardemff7.net>

Cheers,


---
  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;
  }



--

Quentin “Sardem FF7” Glidic
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to