--- a/meson.build +++ b/meson.build @@ -98,11 +98,28 @@ if build_wayland cc.find_library('rt'), ] - wl_mod = import('unstable-wayland') - targets_wayland = [ - wl_mod.scan_xml(wl_mod.find_protocol('xdg-shell')), - wl_mod.scan_xml(wl_mod.find_protocol( - 'pointer-gestures', - state: 'unstable', - version: 1, - )), - ] + # muon compatibility: generate protocol files without external module + wayland_protocols_dep = dependency('wayland-protocols') + wayland_protocols_datadir = wayland_protocols_dep.get_pkgconfig_variable('pkgdatadir') + wayland_scanner = find_program('wayland-scanner') + + gen_client_header = generator(wayland_scanner, + output: '@BASENAME@-client-protocol.h', + arguments: ['client-header', '@INPUT@', '@OUTPUT@']) + gen_private_code = generator(wayland_scanner, + output: '@BASENAME@-protocol.c', + arguments: ['private-code', '@INPUT@', '@OUTPUT@']) + + xdg_shell_xml = join_paths(wayland_protocols_datadir, 'stable/xdg-shell/xdg-shell.xml') + xdg_shell_client_h = gen_client_header.process(xdg_shell_xml) + xdg_shell_code = gen_private_code.process(xdg_shell_xml) + + pointer_gestures_xml = join_paths(wayland_protocols_datadir, 'unstable/pointer-gestures/pointer-gestures-unstable-v1.xml') + pointer_gestures_client_h = gen_client_header.process(pointer_gestures_xml) + pointer_gestures_code = gen_private_code.process(pointer_gestures_xml) + + targets_wayland = [ + xdg_shell_client_h, xdg_shell_code, + pointer_gestures_client_h, pointer_gestures_code, + ]