The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
2.0 KiB
48 lines
2.0 KiB
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)
|
|
|