compositor-x11: Add base XCB/XKB support
Try to find the XKB extension, to be used in later commits.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
diff --git a/configure.ac b/configure.ac
index ce97486..b616e77 100644
--- a/configure.ac
+++ b/configure.ac
@@ -65,8 +65,26 @@
LIBS=$xcb_save_LIBS
CFLAGS=$xcb_save_CFLAGS
+ X11_COMPOSITOR_MODULES="x11 x11-xcb"
+
+ PKG_CHECK_MODULES(X11_COMPOSITOR_XKB, [xcb-xkb],
+ [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
+
+ PKG_CHECK_MODULES(X11_COMPOSITOR, [$X11_COMPOSITOR_MODULES])
AC_DEFINE([BUILD_X11_COMPOSITOR], [1], [Build the X11 compositor])
- PKG_CHECK_MODULES(X11_COMPOSITOR, [x11 x11-xcb])
fi