Fix issues detected by static analysis tool
[platform/upstream/libxkbcommon.git] / PACKAGING
1 libxkbcommon consists of three shared libraries, libxkbcommon (the main
2 library), libxkbcommon-x11 (an addon library for XCB clients) and libxkbregistry
3 (a library to list available RMLVO options).
4
5 The files for libxkbcommon-x11 are:
6     libxkbcommon-x11.a libxkbcommon-x11.so* xkbcommon/xkbcommon-x11.h
7     xkbcommon-x11.map xkbcommon-x11.pc
8
9 libxkbcommon-x11 can be disabled with -Denable-x11=false (see
10 `meson configure build` for other options/variables).
11
12 The files for libxkbregistry are:
13     libxkbregistry.a libxkbregistry.so* xkbcommon/xkbregistry.h
14     xkbregistry.map xkbregistry.pc
15
16 libxkbregistry can be disabled with -Denable-xkbregistry=false (see
17 `meson configure build` for other options/variables).
18
19 Dependencies for libxkbcommon:
20 - C compiler, meson, pkg-config, libc.
21
22 - (build) bison (preferred), win_bison or byacc>=20141006.
23   byacc must be configured with --enable-btyacc.
24
25 - (build optional, runtime required) xkeyboard-config.
26   During build, for automatically detecting the value of
27   -Dxkb-config-root instead of guessing (/usr/share/X11/xkb).
28   During runtime, not strictly needed, but most users of the library
29   would need it.
30
31 - (runtime) libX11.
32   Contains the dataset for Compose support (/usr/share/X11/locale).
33   Please don't depend on it explicitly.
34
35 - (build optional) doxygen.
36   For generating the HTML documentation.
37   To disable, use -Denable-docs=false.
38
39 - (build optional) gperf.
40   Output included in git and tarball. To regenerate, use
41   `./scripts/update-keywords`.
42
43 Dependencies for xkbcli:
44 - libxkbcommon.
45
46 Dependencies for libxkbcommon-x11:
47 - libxkbcommon.
48
49 - libxcb>=1.10 with libxcb-xkb.
50
51 Dependencies for libxkbcommon-x11 tests:
52 - xkbcomp, Xvfb.
53   If they are not available, the relevant tests are skipped.
54
55 Dependencies for libxkbregistry:
56 - libxkbregistry is a sublibrary of libxkbcommon and cannot be built without
57   building libxbkcommon. The files produced are otherwise independent.
58
59 - libxml2
60
61 - (build optional, runtime requirement) xkeyboard-config
62   During build, for automatically detecting the value of
63   -Dxkb-config-root instead of guessing (/usr/share/X11/xkb).
64
65 Dependencies for Wayland tests:
66 - wayland-client>=1.2.0, wayland-scanner, wayland-protocols>=1.0.
67   To disable, use -Denable-wayland=false.
68
69 Unless libxcb is always available as part of the system, it is preferred
70 that libxkbcommon and libxkbcommon-x11 be split into separate packages,
71 such that the main library does not depend on libxcb. This avoids a
72 transitive dependency of Wayland clients on X libraries.
73
74 It is perferred that libxkbregistry be split into a separate packages as most
75 clients that require libxkbcommon do not require libxkbregistry and clients
76 requiring libxkbregistry may not need libxkbcommon.