diff options
author | Ran Benita <ran234@gmail.com> | 2017-07-25 21:57:42 +0300 |
---|---|---|
committer | Ran Benita <ran234@gmail.com> | 2017-07-31 20:53:39 +0300 |
commit | 86434d8498fdc674a8b1c9fe7f9f4b4ca54240a5 (patch) | |
tree | 0485f8ffba44155afa6b0f2b8de122561ea3b79a /PACKAGING | |
parent | 75ec764ceec9aacddfd34f6066f2d5e7cafc8c51 (diff) | |
download | xorg-lib-libxkbcommon-86434d8498fdc674a8b1c9fe7f9f4b4ca54240a5.tar.gz |
build: add meson build system
Meson is easier to maintain, much faster, encourages better practices,
and is not built on a pile of shell scripts.
The autotools build system is kept intact for now, in order to ease the
migration. The intention is to remove it sooner rather than later, if
all goes well.
Run `meson build && mesonconf build` to see the configuration options
for the new system. Conversion should be straightforward. Environment
variables like CFLAGS work the same.
If meson is used, xorg-util-macros is not required.
In terms of functionality the two systems have about the same
capabilities. Here are some differences I noticed:
- Meson uses `-g` by default, autotools uses `-g -O2`.
- In autotools the default behavior is to install both static and shared
versions of the libraries. In meson the user must choose exactly one
(using -Ddefault_library=static/shared).
It is possible to workaround if needed (install twice...), but
hopefully meson will add the option in the future.
- Autotools has builtin ctags/cscope targets, meson doesn't.
Easy to run the tools directly.
- Meson has builtin benchmarks target. Handy.
- Meson has builtin support for sanitizers/clang-analyzer/lto/pgo/
coverage etc. Also handy.
Signed-off-by: Ran Benita <ran234@gmail.com>
Diffstat (limited to 'PACKAGING')
-rw-r--r-- | PACKAGING | 20 |
1 files changed, 8 insertions, 12 deletions
@@ -5,22 +5,18 @@ The files for libxkbcommon-x11 are: libxkbcommon-x11.a libxkbcommon-x11.so* xkbcommon/xkbcommon-x11.h xkbcommon-x11.map xkbcommon-x11.pc -libxkbcommon-x11 can be disabled with --disable-x11 (see -`./configure --help` for other options/variables). +libxkbcommon-x11 can be disabled with -Denable-x11=false (see +`mesonconf build` for other options/variables). Dependencies for libxkbcommon: -- C compiler, autoconf, automake, pkg-config, libc, etc. +- C compiler, meson, pkg-config, libc, bash, grep, sed. -- (build optional) xorg-util-macros. - Output included in tarball. - -- (build optional) bison (preferred) or byacc>=20141006. - Output included in tarball. +- (build) bison (preferred) or byacc>=20141006. byacc must be configured with --enable-btyacc. - (build optional, runtime) xkeyboard-config. During build, for automatically detecting the value of - --with-xkb-config-root instead of guessing (/usr/share/X11/xkb). + -Dxkb-config-root instead of guessing (/usr/share/X11/xkb). During runtime, not strictly needed, but most users of the library would need it. @@ -30,6 +26,7 @@ Dependencies for libxkbcommon: - (build optional) doxygen. For generating the HTML documentation. + To disable, use -Denable-docs=false. - (build optional) gperf. Output included in git and tarball. To regenerate, use @@ -45,9 +42,8 @@ Dependencies for libxkbcommon-x11 tests: If they are not available, the relevant tests are skipped. Dependencies for Wayland tests: -- wayland-client>=1.2.0, wayland-scanner, wayland-protocols>=1.0 - If they are not available, the relevant example/utility program is - skipped. +- wayland-client>=1.2.0, wayland-scanner, wayland-protocols>=1.0. + To disable, use -Denable-wayland=false. Unless libxcb is always available as part of the system, it is preferred that libxkbcommon and libxkbcommon-x11 be split into separate packages, |