On Mon, Sep 13, 2021 at 03:20:36PM -0700, Vivek Kasireddy wrote: > Cc: Gerd Hoffmann <kra...@redhat.com> > Signed-off-by: Vivek Kasireddy <vivek.kasire...@intel.com> > --- > configure | 8 +- > meson.build | 33 +++ > meson_options.txt | 2 + > qapi/ui.json | 3 + > ui/meson.build | 52 ++++ > ui/wayland.c | 628 ++++++++++++++++++++++++++++++++++++++++++++++ > 6 files changed, 725 insertions(+), 1 deletion(-) > create mode 100644 ui/wayland.c
> diff --git a/ui/meson.build b/ui/meson.build > index a73beb0e54..86fc324c82 100644 > --- a/ui/meson.build > +++ b/ui/meson.build > @@ -64,6 +64,58 @@ if config_host.has_key('CONFIG_OPENGL') and gbm.found() > ui_modules += {'egl-headless' : egl_headless_ss} > endif > > +wayland_scanner = find_program('wayland-scanner') > +proto_sources = [ > + ['xdg-shell', 'stable', ], > + ['fullscreen-shell', 'unstable', 'v1', ], > + ['linux-dmabuf', 'unstable', 'v1', ], > +] > +wayland_headers = [] > +wayland_proto_sources = [] > + > +if wayland.found() > + foreach p: proto_sources > + proto_name = p.get(0) > + proto_stability = p.get(1) > + > + if proto_stability == 'stable' > + output_base = proto_name > + input = files(join_paths(wlproto_dir, > '@0@/@1@/@2@.xml'.format(proto_stability, proto_name, output_base))) > + else > + proto_version = p.get(2) > + output_base = '@0@-@1@-@2@'.format(proto_name, proto_stability, > proto_version) > + input = files(join_paths(wlproto_dir, > '@0@/@1@/@2@.xml'.format(proto_stability, proto_name, output_base))) > + endif > + > + wayland_headers += custom_target('@0@ client header'.format(output_base), > + input: input, > + output: '@0@-client-protocol.h'.format(output_base), > + command: [ > + wayland_scanner, > + 'client-header', > + '@INPUT@', '@OUTPUT@', > + ], build_by_default: true > + ) > + > + wayland_proto_sources += custom_target('@0@ source'.format(output_base), > + input: input, > + output: '@0@-protocol.c'.format(output_base), > + command: [ > + wayland_scanner, > + 'private-code', > + '@INPUT@', '@OUTPUT@', > + ], build_by_default: true > + ) > + endforeach > +endif > + > +if wayland.found() > + wayland_ss = ss.source_set() > + wayland_ss.add(when: wayland, if_true: files('wayland.c', > 'xdg-shell-protocol.c', > 'fullscreen-shell-unstable-v1-protocol.c','linux-dmabuf-unstable-v1-protocol.c')) > + #wayland_ss.add(when: wayland, if_true: files('wayland.c'), > [wayland_proto_sources]) > + ui_modules += {'wayland' : wayland_ss} > +endif Configure fails on this Program wayland-scanner found: YES (/usr/bin/wayland-scanner) ../ui/meson.build:114:13: ERROR: File xdg-shell-protocol.c does not exist. the code a few lines above generates xdg-shell-protocol.c, but that isn't run until you type "make", so when meson is resolving the source files they don't exist. The alternative line you have commented out looks more like what we would need, but it doesn't work either as its syntax is invalid. How did you actually compile this series ? Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|