Skip to content

xwayland: remove includedir from pkgconfig

Rouven Czerwinski requested to merge Emantor/xserver:topic/meson into master

Before this change, the xwayland pkgconfig file will always contain an includedir directive, even though xwayland is not a linkable shared library:

  prefix=/nix/store/3spcjqp5zcyg8arz6dnsj59fal5yk3jy-xwayland-23.2.6
  includedir=${prefix}/include

  exec_prefix=${prefix}
  xwayland=/nix/store/3spcjqp5zcyg8arz6dnsj59fal5yk3jy-xwayland-23.2.6/bin/Xwayland
  […]
  Cflags: -I${includedir}

According to a bug reporter this trips up cmake 1, which expects that the include directory exists, which it does not since xwayland does not install any header files.

Add the dataonly directive to pkgsconfig.generate() which will remove the default "." subdir and ensures that includedir is not set inside the pkgconfig file. Additionally enforce the install directory to $libdir/pkgconfig, since it otherwise will be installed to $datadir/pkgconfig, which precludes programs from finding the pkgconfig because share/pkgconfig is usually not included in the search path.

The resulting pkgconfig does not contain an includedir:

  prefix=/nix/store/p7xhdzl65hfhzf36vxykzp2i9cyy7y6c-xwayland-23.2.6

  exec_prefix=${prefix}
  xwayland=/nix/store/p7xhdzl65hfhzf36vxykzp2i9cyy7y6c-xwayland-23.2.6/bin/Xwayland
  have_glamor=true
  have_eglstream=true
  have_initfd=true
  have_listenfd=true
  have_verbose=true
  have_terminate_delay=true
  have_no_touch_pointer_emulation=true
  have_force_xrandr_emulation=true
  have_geometry=true
  have_fullscreen=true
  have_host_grab=true
  have_decorate=false
  have_enable_ei_portal=true
  have_byteswappedclients=true

  Name: Xwayland
  Description: X Server for Wayland
  Version: 23.2.6

Signed-off-by: Rouven Czerwinski rouven@czerwinskis.de

Edited by Rouven Czerwinski

Merge request reports