[weston] xkbcommon library is not optional.

Joaquim Duran jduran.gm at gmail.com
Tue Oct 13 04:59:13 PDT 2015


Hello,

When configuring the Weston project, it is possible to disable (don't
include) the library libxkbcommon. To compile Weston successfully,
even if the option --disable-xkbcommon is specified, the library must
be installed because the file src/compositor.h requires it.

Some code of file src/compositor.h should only be compiled if
xkbcommon library is enabed, but this is not the case. Here I include
some lines from that file:


    34 #include <stdbool.h>
    35 #include <time.h>
    36 #include <pixman.h>
    37 #include <xkbcommon/xkbcommon.h>   <--- Always included

    450
    451 struct weston_xkb_info {      <--- Always compiled
    452         struct xkb_keymap *keymap;
    453         int keymap_fd;
    454         size_t keymap_size;
    455         char *keymap_area;
    456         int32_t ref_count;
    457         xkb_mod_index_t shift_mod;
    458         xkb_mod_index_t caps_mod;
    459         xkb_mod_index_t ctrl_mod;
    460         xkb_mod_index_t alt_mod;
    461         xkb_mod_index_t mod2_mod;
    462         xkb_mod_index_t mod3_mod;
    463         xkb_mod_index_t super_mod;
    464         xkb_mod_index_t mod5_mod;
    465         xkb_led_index_t num_led;
    466         xkb_led_index_t caps_led;
    467         xkb_led_index_t scroll_led;
    468 };
    469


Configuration of weston:

./autogen.sh \
    --disable-devdocs \
    --disable-dbus \
    --disable-xwayland \
    --disable-xwayland-test \
    --disable-x11-compositor \
    --disable-drm-compositor \
    --disable-wayland-compositor \
    --disable-headless-compositor \
    --disable-rpi-compositor \
    --enable-fbdev-compositor \
    --disable-rdp-compositor \
    --disable-weston-launch \
    --disable-wcap-tools \
    --with-cairo=image \
    --disable-xkbcommon \
    --enable-clients \
    --disable-simple-clients \
    --disable-simple-egl-clients \
    --build=i686-linux --host=arm-none-linux-gnueabi
--target=arm-none-linux-gnueabi \
    --prefix=$INSTALL_DIR --with-sysroot=${SYSROOT_DIR}


Error:

gem-med at gemmed-VirtualBox:~/Logic_BSPs/Linux_3.0/src/weston$ make
make  all-am
make[1]: Entering directory `/home/gem-med/Logic_BSPs/Linux_3.0/src/weston'
  CC     src/gl_renderer_la-gl-renderer.lo
cc1: warning: include location "/usr/include/libdrm" is unsafe for
cross-compilation [-Wpoison-system-directories]
In file included from src/gl-renderer.h:28:0,
                 from src/gl-renderer.c:41:
src/compositor.h:37:33: fatal error: xkbcommon/xkbcommon.h: No such
file or directory
compilation terminated.
make[1]: *** [src/gl_renderer_la-gl-renderer.lo] Error 1
make[1]: Leaving directory `/home/gem-med/Logic_BSPs/Linux_3.0/src/weston'
make: *** [all] Error 2

Joaquim Duran


More information about the wayland-devel mailing list