summaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
authorRan Benita <ran234@gmail.com>2013-07-20 23:21:44 +0300
committerRan Benita <ran234@gmail.com>2014-02-02 11:16:40 +0200
commiteb34825560edf570d883d3e52a8fe657c17b3d9c (patch)
treedc1d7d3dba0acc6a07ccbbf297093c9ea08ce3f5 /Makefile.am
parentddbefda383cccbf8d537b30471fc2ce893826d35 (diff)
downloadlibxkbcommon-eb34825560edf570d883d3e52a8fe657c17b3d9c.tar.gz
libxkbcommon-eb34825560edf570d883d3e52a8fe657c17b3d9c.tar.bz2
libxkbcommon-eb34825560edf570d883d3e52a8fe657c17b3d9c.zip
x11: add XKB protocol keymap and state creation support
These are function to create an xkb_keymap directly from XKB requests to the X server. This opens up the possibility for X clients to use xcb + xcb-xkb + xkbcommon as a proper replacement for Xlib + xkbfile for keyboard support. The X11 support must be enabled with --enable-x11 for now. The functions are in xkbcommon/xkbcommon-x11.h. It depends on a recent libxcb with xkb enabled. The functions are in a new libxkbcommon-x11.so, with a new pkg-config file, etc. so that the packages may be split, and libxkbcommon.so itself remains dependency-free. Why not just use the RMLVO that the server puts in the _XKB_RULES_NAMES property? This does not account for custom keymaps, on-the-fly keymap modifications, remote clients, etc., so is not a proper solution in practice. Also, some servers don't even set it. Now, the client just needs to recreate the keymap in response to a change in the server's keymap (as Xlib clients do with XRefreshKeyboardMapping() and friends). Signed-off-by: Ran Benita <ran234@gmail.com>
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am27
1 files changed, 27 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 3168b55..5fc982b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -78,6 +78,33 @@ libxkbcommon_la_SOURCES = \
src/utils.c \
src/utils.h
+if ENABLE_X11
+pkgconfig_DATA += xkbcommon-x11.pc
+
+xkbcommon_x11includedir = $(xkbcommonincludedir)
+xkbcommon_x11include_HEADERS = \
+ xkbcommon/xkbcommon-x11.h
+
+lib_LTLIBRARIES += libxkbcommon-x11.la
+
+libxkbcommon_x11_la_CFLAGS = $(AM_CFLAGS) $(XCB_XKB_CFLAGS)
+libxkbcommon_x11_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/src/x11
+libxkbcommon_x11_la_LIBADD = libxkbcommon.la $(XCB_XKB_LIBS)
+
+libxkbcommon_x11_la_SOURCES = \
+ src/x11/keymap.c \
+ src/x11/state.c \
+ src/x11/util.c \
+ src/x11/x11-priv.h \
+ src/context.h \
+ src/context-priv.c \
+ src/keymap.h \
+ src/keymap-priv.c \
+ src/atom.h \
+ src/atom.c
+
+endif ENABLE_X11
+
BUILT_SOURCES = \
src/xkbcomp/parser.c \
src/xkbcomp/parser.h