Haibo Huang | bffa849 | 2020-09-08 17:10:03 -0700 | [diff] [blame] | 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. |