Makefile.am


Log

Author Commit Date CI Message
Peter Hutterer d1cb8ad4 2018-08-14T11:16:30 test: add a tool to test-compile all LVO combinations from xkeyboard-config This test contains of two parts: - a simple program to convert RMLVO commandline arguments into a keymap (and print that keymap if requested). - a python script that runs through rules/evdev.xml, and tries to compile a keymap for sort-of every layout/variant/option combination. Sort-of, because we can have multiple options and it really only does one per layout(variant) combination. Same thing can be done using xkbcomp, but right now it doesn't take that as argument, it's hard-coded. This takes quite a while, installing python-tqdm is recommended to see fancy progress bars instead of just miles of dumps. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Ran Benita b2529f2a 2018-02-27T12:32:40 build/autotools: remove redundant ACLOCAL_AMFLAGS Will be deprecated in automake 2.0. Replaced by AC_CONFIG_MACRO_DIR (already present) which is available since autoconf 2.63. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 5c2da779 2017-08-04T15:31:06 build/autotools: fix doc installation Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita c665b450 2017-08-02T18:26:19 build/autotools: make doxygen's input relative Was meant to be a part of 41bea9a. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita cd642b27 2017-08-01T23:36:33 build/autotools: dist the meson build files So that it's possible to build with meson from autotools-generated tarballs. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita fd82b89e 2017-08-01T23:32:57 build/autotools: install documentation under html/ To be consistent with the meson build; also makes more sense as doxygen can generate more than html (though we currently are not doing that). Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 41bea9ab 2017-08-01T22:19:48 build: make doxygen run from the source tree I couldn't find any other way to make this work! Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 75ec764c 2017-07-26T12:40:09 build: remove Android.mk I don't think it will work with meson, and I also don't think anyone is using it. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 993f4837 2017-07-31T18:16:37 build: fix out-of-tree build The change in d44ba48 removed -I$(top_builddir)/src/xkbcomp, but this is needed in order to find the generated parser.h file which is put in the build dir. I also added -I$(top_builddir)/src in order to match the meson behavior. Fixes https://github.com/xkbcommon/libxkbcommon/issues/50 Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 4309735d 2017-07-31T11:24:28 build: use top_srcdir consistently Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 4983dbcf 2017-07-28T18:19:40 build: change doxygen target to be properly dependency-based This hackery (thanks libinput) is clearer and more precise than the previous hackery. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 0a19267f 2017-07-29T14:37:23 build: move custom targets to scripts/ and remove from makefile These scripts generate source code that is committed to git and hence do not really belong in the build system. A maintainer runs them as needed. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 00b08eae 2017-07-29T13:54:02 build: rewrite the update-keysyms sed script in python A bit more manageable this way, and the other part of the target is already using python. The output is the same, except I removed the reference to Makefile.am. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita d44ba481 2017-07-29T22:43:08 build: remove unneeded preprocessor include flags Better to avoid these unexpected include paths. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 1b6fa029 2017-07-29T22:41:26 build: explain why we don't AC_DEFINE a couple of constants Signed-off-by: Ran Benita <ran234@gmail.com>
Daniel Stone 90bd9fdb 2017-04-11T15:09:50 interactive-wayland: Port to xdg-shell v6 Mutter only implements v6 now, and Weston also implements that. Port interactive-wayland to this so people can keep on using it. Signed-off-by: Daniel Stone <daniels@collabora.com>
Daniel Stone 7e123a10 2016-04-12T12:03:32 test: Add interactive-wayland interactive-wayland is very similar to x11/xev, and dumps out as much state as possible. It provides no titlebar and a completely random cursor, but such is life. Signed-off-by: Daniel Stone <daniels@collabora.com>
Daniel Stone bea54b1f 2016-03-31T16:42:41 Add LICENSE to distributed files Signed-off-by: Daniel Stone <daniels@collabora.com>
Daniel Stone a2974d5f 2016-03-15T11:20:35 doc: Fix Doxygen include for srcdir != builddir Instead of giving Doxygen a series of absolute paths to the source files and a relative path to the output directory, run it from the source directory with purely relative paths to the source files, and give it an absolute path to the build directory. This fixes the parsing of README.md with a separate build directory, since the relative includes for doc/quick-guide.md and doc/compat.md don't resolve otherwise. Doxygen's INCLUDE_PATH turns out not to fix this either, since that's just a set of paths to open and parse, rather than an analogue to cpp's -I. Signed-off-by: Daniel Stone <daniels@collabora.com>
Ran Benita 914e84e0 2016-03-13T23:09:21 build: don't run test/x11comp in make check for now For some reason, the dumped keymap started repeating the two key types FOUR_LEVEL_PLUS_LOCK and FOUR_LEVEL_KEYPAD. I need to investigate, but let's disable it for now until I do (the problem would likely not be in the xkbcommon - at most in the test itself). Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita fa1b4543 2016-03-13T20:56:58 test: add a test that all symbol version file is updated It is easy to forget to update these files when adding new symbols. Stolen with slight changes from libinput (commit by Marek Chalupa): https://cgit.freedesktop.org/wayland/libinput/commit/?id=a9f216ab47ea2f643f20ed741b741a2b5766eba3 Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 712b39ac 2016-03-13T21:32:28 build: make it easier to add non-built (e.g. script) tests Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita c991a7df 2016-01-20T23:30:21 build: fix distcheck File was renamed in 4266402. Signed-off-by: Ran Benita <ran234@gmail.com>
Mike Blumenkrantz 0ce17ef3 2016-01-20T11:40:43 keymap: add xkb_keymap_key_by_name(), xkb_keymap_key_get_name(), tests xkb_keymap_key_by_name() allows finding a keycode from a given keyname and is useful for generating keyboard events to use in regression tests during CI xkb_keymap_key_get_name() is the inverse of xkb_keymap_key_by_name() Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com> [ran: some stylistic tweaks + another test case] Signed-off-by: Ran Benita <ran234@gmail.com>
Kazunobu Kuriyama 3c12d671 2015-08-24T13:33:32 bench: Modify benchmarks for a wider range of platforms - Add the new files bench.c and bench.h to implement a timer module. - Implement the module with clock_gettime(), mach_absolute_time(), or gettimeofday(), depending on a given platform. - Replace the time measurement code of the benchmark programs with the functions of the module.
Ran Benita 257e38c8 2015-07-17T23:26:20 build: don't fail if linker version scripts are not supported Some platforms (such as OSX) do not support version scripts. In these platforms the symbols will not be versioned, but it is OK to omit them. https://github.com/xkbcommon/libxkbcommon/issues/24
Ran Benita 413954aa 2014-10-18T15:51:41 Add PACKAGING file Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 047d0612 2014-10-18T15:07:37 Makefile.am: add symbol files to EXTRA_DIST Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 0419f6e7 2014-10-18T14:50:49 docs: make html output have a fixed width, hide footer It's hard to read text which stretches indefinitely. The footer is not adding much. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 494a8fbf 2014-10-18T13:50:54 README: move compatibility notes to their own page Signed-off-by: Ran Benita <ran234@gmail.com>
Jasper Lievisse Adriaanse 3e169c47 2014-10-15T21:08:17 Make librt optional, required for at least OpenBSD
Ran Benita 8d58e250 2014-10-03T00:30:43 bench/compose: add new benchmark Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 10a7a2bd 2013-10-27T20:37:27 test/compose: add new test Some results from the benchmark (compilation of en_US.UTF-8/Compose): $ grep 'model name' /proc/cpuinfo model name : Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz model name : Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz $ uname -a Linux ran 3.16.1-1-ARCH #1 SMP PREEMPT Thu Aug 14 07:40:19 CEST 2014 x86_64 GNU/Linux $ ./test/compose bench compiled 1000 compose tables in 7.776488331s So according to the above benchmark and valgrind --tool=massif, an xkb_compose_table adds an overhead of about ~8ms time and ~130KB resident memory. For contrast, a plain US keymap adds an overhead of ~3ms time and 90KB resident memory. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita edc98b54 2014-09-12T18:44:30 compose: add xkbcommon-compose - implementation Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita bc3b4c08 2014-10-02T22:03:28 Move benchmarks from tests to their own files in bench/ The tests only contain tests, and the benchmarks are more visible. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita fd126551 2014-10-02T21:24:29 build: don't rebuild everything for libtest.la We added a -fvisibilty=default to the libtest.la CFLAGS. When automake sees that the CFLAGS are different from those of libxkbcommon.la, it figures it should recompile all of the $(libxkbcommon_la_SOURCES), instead of reusing the already-compiled object files. But actually, the convenience library is not a shared object, it's just used as an archive, thus the -fvisibility is entirely pointless. So avoid the recompilations by just removing it. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita f03dcf9f 2014-09-10T19:11:41 Remove compatibility symbols Remove the deprecated symbols that were used for ABI compatibility during the transition period to the first stable version, 0.2.0. The old *names* can still be used, programs which use the old names will continue to work, as long as they were compiled against a stable version (as they have been #defined to the new names from the start; see xkbcommon/xkbcommon-compat.h). Namely, this will break binaries which: 1. Were compiled against a pre-stable version of libxkbcommon, and 2. Are linked against the next version of libxkbcommon, and 3. Expect to work. This scenario is very unlikely, and will break in many other ways anyway. Also, retaining support for these means including them in the new symbol version file, which I would like to avoid. Signed-off-by: Ran Benita <ran234@gmail.com>
Jan Engelhardt 5444f6a8 2014-09-09T19:08:46 build: use symbol versioning Symbol versions provide a means by which ELF utilities can determine whether a program is incompatible with a too-old library version so that package management tools can autodetect version-based dependencies and suggest upgrade paths. [ran: swap xkbcommon.map and xkbcommon-x11.map] Signed-off-by: Jan Engelhardt <jengelh@inai.de> Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita ba985629 2014-09-06T11:29:15 test: make most tests portable by copying linux/input.h locally There is really no reason to deny these tests from different platforms only for a few #defines. The only linux-only test (or test program, it is not run by make check) is interactive-evdev, which actually uses evdev. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 4df720b4 2014-08-09T22:14:34 test/x11-keyseq: new test It is like test/stringcomp, only instead of using xkb_keymap_new_from_string(), it uses xkbcomp to upload the keymap to a dummy Xvfb X server and then xkb_x11_keymap_new_from_device(). If any of these components are not present or fails, the test is shown as skipped. The test is messy, fragile, limited and depends on external tools, but I will improve on that later -- it's better to have a test. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 2a610ff4 2014-03-27T20:37:21 build: add docs to EXTRA_DIST Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 2bbaf7c7 2014-02-09T13:50:21 Add utf8.{c,h} for common UTF-8 util functions We need to validate some UTF-8, so this adds an is_valid_utf8() function, which is probably pretty slow but should work correctly. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita aed34694 2014-02-11T17:44:11 build: small fixes and formatting of Makefile.am Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 9c48d303 2014-02-11T17:16:40 build: fix libtest AM_CLFLAGS typo Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita e55a0cea 2013-10-27T20:10:15 Move src/xkbcomp/scanner-utils.h to src/ As we'll use it for things unrelated to xkbcomp. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 2f93c788 2013-07-30T15:06:40 x11: add a couple of tests Add two tests: ./test/interactive-x11 which is like test/interactive-evdev, but should behave exactly like your X keyboard and react to state and keymap changes - in other words, just like typing in xterm. Press ESC to exit. ./test/x11 which currently should only print out the same keymap as xkbcomp $DISPLAY out.xkb (modulo some whitespace and some constructs we do not support.) Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita eb348255 2013-07-20T23:21:44 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>
Ran Benita ddbefda3 2014-01-13T18:19:36 build: error out on undefined symbols This helps ensure we don't ship a library with undefined symbols, which can easily happen with multiple inter-dependent DSOs. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita a9c56f64 2014-01-13T17:20:54 context: split private functions to context-priv.c (Same as keymap-priv.c). Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 7210497c 2014-01-13T17:07:41 keymap: split private functions to keymap-priv.c This makes it easier to share the private functions in other DSOs without relying (too much) on dead code elimination, exported symbols, etc. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita d63e0ab8 2013-07-30T13:38:51 test: rename test/interactive to interactive-evdev And share the key-printing functions. In preparation for adding more interactive-* variants. Signed-off-by: Ran Benita <ran234@gmail.com>
Jasper St. Pierre 938a2c37 2013-07-17T17:49:10 makekeys: Move all of the table generation to Python This makes it easier to run the Python script manually.
Ran Benita b246edc6 2013-12-02T14:16:45 test/atom: add test for atom table Mostly a random test. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 13da6da0 2013-09-29T00:24:50 parser: drop %name-prefix, use -p yacc argument instead Even though the %name-prefix is more sensible, byacc doesn't support it, but both bison and byacc support the -p argument. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 0dbe20ae 2013-09-29T00:16:39 Makefile.am: drop AM_LFLAGS We don't use a lex/flex anymore so this is not used. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 5d2b268d 2013-08-29T19:07:25 build: distribute makekeys.py and keywords.gperf This was an oversight: even though we ship the pre-built files, it is still good behavior to include the original generators / source files in the tarball. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 5b7f7668 2013-08-15T09:32:42 build: build libtest.la only on 'make check' For those just running 'make', compiling libtest is wasted heat. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 9bb1d0bc 2013-08-02T11:07:27 build: make all symbols in libtest visible Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita c25bdc3f 2013-08-02T10:21:52 build: use AM_LDFLAGS for general flags We want -no-undefined for every library so do it implictly. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita a392d268 2012-08-12T11:40:02 Replace flex scanner with a hand-written one The scanner is very similar in structure to the one in xkbcomp/rules.c. It avoids copying and has nicer error reporting. It uses gperf to generate a hashtable for the keywords, which gives a nice speed boost (compared to the naive strcasecmp method at least). But since there's hardly a reason to regenerate it every time and require people to install gperf, the output (keywords.c) is added here as well. Here are some stats from test/rulescomp: Before: compiled 1000 keymaps in 4.052939625s ==22063== total heap usage: 101,101 allocs, 101,101 frees, 11,840,834 bytes allocated After: compiled 1000 keymaps in 3.519665434s ==26505== total heap usage: 99,945 allocs, 99,945 frees, 7,033,608 bytes allocated Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita e4bceec8 2013-03-14T14:33:40 utils: add {un,}map_file to read an entire file This wraps the current mmap call and adds a fallback implementation for systems which do not have mmap (e.g. mingw). Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 99f6e6fc 2013-03-14T14:31:55 Add scanner-utils.h for common scanner functions We want to share the same functions for another scanner. Signed-off-by: Ran Benita <ran234@gmail.com>
David Herrmann 36f55c49 2013-03-11T12:53:39 keymap: add xkb_keymap_new_from_buffer() The current API doesn't allow the caller to create keymaps from mmap()'ed files. The problem is, xkb_keymap_new_from_string() requires a terminating 0 byte. However, there is no way to guarantee that when using mmap() so a user currently has to copy the whole file just to get the terminating zero byte (assuming they cannot use xkb_keymap_new_from_file()). This adds a new entry xkb_keymap_new_from_buffer() which takes a memory location and the buffer size in bytes. Internally, we depend on yy_scan_{string,byte}() helpers. According to flex documentation these already copy the input string because they are wrappers around yy_scan_buffer(). yy_scan_buffer() on the other hand has some insane requirements. The buffer must be writeable and the last two bytes must be ASCII-NUL. But the buffer may contain other 0 bytes just fine. Because we don't want these constraints in our public API, xkb_keymap_new_from_buffer() needs to create a copy of the input memory. But it then calls yy_scan_buffer() directly. Hence, we have the same number of buffer-copies as with *_from_string() but without the terminating 0 requirement. The explicit yy_scan_buffer() call is preferred over yy_scan_byte() so the buffer-copy operation is not hidden somewhere in flex. Maybe some day we no longer depend on flex and can have a zero-copy API. A user could mmap() a file and it would get parsed right from this buffer. But until then, we shouldn't expose this limitation in the API but instead provide an API that some day can work with zero-copy. Signed-off-by: David Herrmann <dh.herrmann@gmail.com> [ran: rebased on top of my branch] Conflicts: Makefile.am src/xkbcomp/xkbcomp.c
Daniel Stone 38654f5e 2013-03-27T22:40:58 Add key-sequence checking to rulescomp Make sure we're actually getting the keymaps we're hoping to compile. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Ran Benita 71eb033e 2013-03-03T21:35:43 Move a couple of general keymap functions from keycodes.c To get a key by name and resolve an alias - this makes sense for everyone. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 79329e10 2013-03-02T19:01:18 Don't try to build linux-specific tests on non-linux Some tests use linux/input.h (and epoll), but we're building on some other kernels (e.g. debian freebsd). We could just copy the file but it's GPL. We could also skip the tests (exit code 77) but it doesn't really matter. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 14842d6d 2013-03-01T21:48:02 keymap: abstract a bit over the keymap format Make it a bit easier to experiment with other formats. Add a struct xkb_keymap_format_operations, which currently contains the keymap compilation and _get_as_string functions. Each format can implement whatever it wants from these. The current public entry points become wrappers which do some error reporting, allocation etc., and calling to the specific format. The wrappers are all moved to src/keymap.c, so there are no XKB_EXPORT's under src/xkbcomp/ anymore. The only format available now is normal text_v1. This is all not very KISS, and adds some indirection, but it is helpful and somewhat cleaner. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 958b2728 2013-02-25T12:37:28 Remove list.h We don't use it anymore and it's easy to add back if needed. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 2b352c11 2013-02-25T12:27:24 Makefile.am: don't create INSTALL and ChangeLog It may be xorg standard but it's completely useless and clutter the directory. Signed-off-by: Ran Benita <ran234@gmail.com>
Damien Lespiau 2f7385d0 2012-10-26T00:51:46 build: Make autoreconf honour ACLOCAL_FLAGS When running autoreconf, it's possible to give flags to the underlying aclocal by declaring a ACLOCAL_AMFLAGS variable in the top level Makefile.am. Putting ${ACLOCAL_FLAGS} there allows the user to set an environment variable up before running autogen.sh and pull in the right directories to look for m4 macros, say an up-to-date version of the xorg-util macros. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Cc: Daniel Stone <daniel@fooishbar.org>
Ran Benita 92360016 2012-10-26T15:05:04 Makefile.am: move test.h to libtest_la_SOURCES Rather than EXTRA_DIST, where it doesn't belong. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 22b868fd 2012-10-26T15:00:33 Makefile.am: split sed script into multiple lines To make it visible on one screen. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita c1c1b720 2012-10-24T23:27:40 test: add key processing benchmark This runs a bunch of random keys against xkb_state_update_key() and xkb_state_key_get_one_sym(), in a fairly unintelligent way. It might be nice to check when modifying this code path, or changing it, to see things haven't slowed down considerably. However, given the numbers this benchmark gives, it is pretty clear that we are not going to be the bottleneck for anything. So this can more-or-less be ignored. Incidentally, this also turned out to be a poor man's fuzzer, because it turned up the fix in the previous commit. Maybe we should consider beefing it up with an actual 'break stuff' intention and running it as part of 'make check'. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 5d9a5cb0 2012-10-17T19:52:47 Commit and distribute ks_tables.h The ks_tables.h file is generated by makekeys.py from xkbcommon-keysyms.h, which in turn is generated initially by 'make update-keysyms'. The xkbcommon-keysyms.h file is commited to git and distributed in the tarball. Since ks_tables.h should only ever change when xkbcommon-keysyms.h changes, it is more sensible to update them together and treat them the same, instead of generating ks_tables.h every time for every builder with 'make', as we do now. This means we don't need python as a build dependency (only the one running update-keysyms, i.e. no one, needs this), and we can be sure exactly the same file is used by everyone. We also don't need to run makekeys.py on every build. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 5fff637e 2012-10-16T16:05:33 makekeys: replace helper with python script and binary search This removes the complicated and undocumented hash-table creation-helper and replaces it with an autogenerated sorted array. The search uses simple bsearch() now. We also tried using gperf but it turned out to generate way to big hashtables and when reducing the size it isn't really faster than bsearch() anymore. There are no users complaining about the speed of keysym lookups and we have no benchmarks that tell that we are horribly slow. Hence, we can safely use the simpler approach and drop all that old code. Signed-off-by: Ran Benita <ran234@gmail.com> Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Ran Benita 523e46f4 2012-10-12T10:15:43 Change log env vars to XKB_LOG_LEVEL/VERBOSITY A bit more consistent and descriptive. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 108fa1c7 2012-09-22T15:02:54 Add support for building doxygen API documentation Simple HTML docs generated from the doxygen comments. After running 'make' or 'make doc', try firefox doc/html/index.html to see it (if you have doxygen). It's also installed with 'make install'. You can use --enable-docs or --disable-docs, or specifically --with-doxygen or --without-doxygen (autodetected, default yes). The docs are currently not distributed in the tarball, because I couldn't make it work properly in all cases :/ Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 18a43322 2012-09-21T19:57:37 configure.ac: add XORG_MEMORY_CHECK_FLAGS Adds some memory checking (e.g. MALLOC_PERTURB_) to tests. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 414007ca 2012-09-21T19:48:33 configure.ac: remove XORG_CHECK_MALLOC_ZERO We don't use its result. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita bbaa11c6 2012-09-21T14:58:31 Rename map.{c,h} to keymap.{c,h} Seeing as we don't like "map" anymore. Signed-off-by: Ran Benita <ran234@gmail.com>
Daniel Stone 005dee2b 2012-09-20T23:28:27 Add _xkbcommon_ prefix to parser and lexer symbols Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 80e15681 2012-09-12T19:52:30 Add xkbcommon-compat.h and compat.c So we can start renaming stuff while retaining backwards source and binary compatibility. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Ran Benita 2c96828f 2012-09-19T16:44:15 test: add print-compiled-keymap tool This just prints the compiled keymap string for to the given command line arguments. This often useful when developing. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita b2110705 2012-09-16T14:45:32 Organize src/ and test/ headers - Add context.h and move context-related functions from xkb-priv.h to it. - Move xkb_context definition back to context.c. - Add keysym.h and move keysym upper/lower/keypad from xkb-priv.h to it. - Rename xkb-priv.h to map.h since it only contains keymap-related definitions and declarations now. - Remove unnecessary includes and some and some other small cleanups. Signed-off-by: Ran Benita <ran234@gmail.com>
David Herrmann 095a7f4c 2012-09-11T16:49:04 xkbcommon-keysyms: Add header protection As there is currently no stable release of xkbcommon, other projects might want to include a copy of the keysyms so they can be used even though libxkbcommon may not be available on the machine. However, if xkbcommon.h is still included, conflicts will occur. Hence, to avoid nasty hacks, simply include a header protection in xkbcommon upstream. [daniels: Added protection to Makefile.am's update-keysyms, as well as XKB_KEY_NoSymbol, and a comment noting that it shouldn't be updated directly.] Signed-off-by: David Herrmann <dh.herrmann@googlemail.com> Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Ran Benita 1aa6e2b1 2012-08-28T19:07:07 test/rules-file: add benchmark Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 480f919d 2012-08-29T11:54:05 test: add rmlvo-to-kccgst tool For a quick look at what components result from the rules. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita f3c4032f 2012-08-30T20:23:35 Set log level for tests through env, not directly This way the test logs have all the information, but we don't get eye bleed every time we run them manually. One can always use TESTS_ENVIRONMENT (we correctly use AM_TESTS_ENVIRONMENT now), or set the envvars from the shell. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 8c1b1b0e 2012-08-29T15:02:40 Add xkbcomp/keymap.c and move some code there Add CompileKeymap to do most of what compile_keymap_file does now, and move UpdateKeymapFromModifiers along with it from (mostly unrelated) compat.c. Also rename UpdateKeymapFromModifiers to UpdateDerivedKeymapFields, because it does more than update the modifiers. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita cdc228ea 2012-08-13T11:00:43 Organize xkbcomp/ header files Various non-functional changes: - Re-add keycodes.h and move some stuff there. - Add parser-priv.h for internal bison/flex stuff. - Don't include headers from other headers, such that file dependencies are immediate in each file. - Rename xkbcomp.h -> ast.h, parseutils.{c,h} -> ast-build.{c,h} - Rename path.{c,h} -> include.{c,h} - Rename keytypes.c -> types.c - Make the naming of XkbFile-related functions more consistent. - Move xkb_map_{new,ref,unref} to map.c. - Remove most extern keyword from function declarations, it's just noise (XKB_EXPORT is what's important here). - Append XKBCOMP_ to include guards. - Shuffle some code around to make all of this work. Splitting this would be a headache.. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 0cc5ae33 2012-08-10T13:30:44 Remove xkbcomp/misc.c The KeyName functions are more appropriate in keycodes.c. The ProcessIncludeFile can go to path.c along with the other functions dealing with includes. Signed-off-by: Ran Benita <ran234@gmail.com>
Pekka Paalanen 3199ea73 2012-05-14T14:33:29 android: add build files squashed: android: set xkb config path Conflicts: Makefile.am
Daniel Stone e756e9b5 2012-08-03T04:02:31 test/dump: Remove superfluous test No longer necessary now we have stringcomp doing a full round-trip test for us. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 8fe2a484 2012-08-03T03:32:30 Rename xkey test to keysym Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone 5cf4f510 2012-08-03T02:57:02 Staticise xkb_map_new_from_kccgst We didn't expose this to the outside world, and its only trivial user was xkb_map_new_from_rules. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Ran Benita 4c212753 2012-04-08T02:20:39 Add an interactive evdev test The program reads key events from evdev input devices, puts them through the library and prints some information about them. It's nice for experimenting, quick testing and trying to break it with random stuff (already found some!). It is called "interactive" for lack of a better name. It's a bit hackish, but can easily be extended, made more portable etc, in the future. Signed-off-by: Ran Benita <ran234@gmail.com> Conflicts: Makefile.am test/.gitignore
Ran Benita 74be1762 2012-07-23T21:30:28 Remove alloc.{c,h} These functions are more appropriate elsewhere now. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 3dc1252d 2012-07-22T19:38:14 Add test for logging functionality Just to make sure everything works properly. Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 70f35cfb 2012-07-20T13:10:13 Add logging API Add new public API to provide the library users with some options to control and customize the logging output from the library. It is based upon the skeleton from the libabc demo libray: https://git.kernel.org/?p=linux/kernel/git/kay/libabc.git which is public domain and works pretty well. This requires passing in the context object in every logging call, and thus the conversion is done file by file. We also remove the global warningLevel variable in favor of a verbosity level in the context, which can be set by the user and is silent by default. One issue is the ACTION calls, which, while nice, do not play very well with line- and priority-based logging, and would require some line continuation handling or keeping state or some other compromise. So instead remove these and just inline them with their respective warning/error. So instead of: ERROR("Memory allocation failed\n") ACTION("Removing all files on hardisk\n") its something like that: log_err("Memory allocation failed; Removing all files on harddisk\n") Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita 5e164ff1 2012-07-23T00:41:27 build: drop the include/ directory The include/ dir is somewhat redundant and makes it just a bit harder to handle the -I directives from out side of automake; without it the default $(top_buildir) just works. Here's also some further justifications I found: http://smcv.pseudorandom.co.uk/2008/09/pc-uninstalled/ Signed-off-by: Ran Benita <ran234@gmail.com>