project('wayland-test-client', 'c') wl_protocols_dep = dependency('wayland-protocols', required : false) if not wl_protocols_dep.found() error('MESON_SKIP_TEST: wayland-protocols not installed') endif wl_client_dep = dependency('wayland-client') wl_server_dep = dependency('wayland-server') wl_mod = import('unstable-wayland') fs = import('fs') # Client side only xdg_shell_xml = wl_mod.find_protocol('xdg-shell') xdg_shell = wl_mod.scan_xml(xdg_shell_xml) assert(xdg_shell.length() == 2) assert(fs.name(xdg_shell[0].full_path()) == 'xdg-shell-protocol.c') assert(fs.name(xdg_shell[1].full_path()) == 'xdg-shell-client-protocol.h') exe = executable('client', 'client.c', xdg_shell, dependencies : wl_client_dep) test('client', exe) # Server side only presentation_time_xml = wl_mod.find_protocol('presentation-time') presentation_time = wl_mod.scan_xml(presentation_time_xml, client : false, server : true) assert(presentation_time.length() == 2) assert(fs.name(presentation_time[0].full_path()) == 'presentation-time-protocol.c') assert(fs.name(presentation_time[1].full_path()) == 'presentation-time-server-protocol.h') exe = executable('server', 'server.c', presentation_time, dependencies : wl_server_dep) test('server', exe) # Both sides viewporter_xml = wl_mod.find_protocol('viewporter') viewporter = wl_mod.scan_xml(viewporter_xml, client : true, server : true) assert(viewporter.length() == 3) assert(fs.name(viewporter[0].full_path()) == 'viewporter-protocol.c') assert(fs.name(viewporter[1].full_path()) == 'viewporter-client-protocol.h') assert(fs.name(viewporter[2].full_path()) == 'viewporter-server-protocol.h') exe = executable('both', 'both.c', viewporter, dependencies : [wl_client_dep, wl_server_dep]) test('both', exe) # Local xml xmls = files('test.xml') gen = wl_mod.scan_xml(xmls) assert(gen.length() == 2) assert(fs.name(gen[0].full_path()) == 'test-protocol.c') assert(fs.name(gen[1].full_path()) == 'test-client-protocol.h') exe = executable('local', 'local.c', gen, dependencies : wl_client_dep) test('local', exe)