[PATCH RFC weston 3/4] compositor-x11: Remove support for ancient XCB
Quentin Glidic
sardemff7+wayland at sardemff7.net
Sun Jan 15 13:05:32 UTC 2017
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 <daniels at collabora.com>
A good thing to do even without Meson:
Reviewed-by: Quentin Glidic <sardemff7+git at 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
More information about the wayland-devel
mailing list