use generators for wayland protocol gen

master
Tony Crisci 7 years ago
parent 26edd5fb9e
commit 5a7595af77

@ -3,7 +3,7 @@
#include <wlr/util/log.h> #include <wlr/util/log.h>
#include <stdlib.h> #include <stdlib.h>
#include "compositor.h" #include "compositor.h"
#include "compositor/protocols/xdg-shell.h" #include "xdg-shell-unstable-v6-protocol.h"
static void resource_destructor(struct wl_client *client, static void resource_destructor(struct wl_client *client,
struct wl_resource *resource) { struct wl_resource *resource) {

@ -8,32 +8,32 @@ executable('pointer', 'pointer.c', dependencies: dep_wlr, link_with: lib_shared)
executable('touch', 'touch.c', dependencies: dep_wlr, link_with: lib_shared) executable('touch', 'touch.c', dependencies: dep_wlr, link_with: lib_shared)
executable('tablet', 'tablet.c', dependencies: dep_wlr, link_with: lib_shared) executable('tablet', 'tablet.c', dependencies: dep_wlr, link_with: lib_shared)
wayland_scanner = find_program('wayland-scanner')
wl_protocol_dir = dep_wayland_proto.get_pkgconfig_variable('pkgdatadir')
wayland_scanner_server = generator(wayland_scanner,
output: '@BASENAME@-protocol.h',
arguments: ['server-header', '@INPUT@', '@OUTPUT@'])
wayland_scanner_code = generator(wayland_scanner,
output: '@BASENAME@-protocol.c',
arguments: ['code', '@INPUT@', '@OUTPUT@'])
compositor_src = [ compositor_src = [
'compositor/main.c', 'compositor/main.c',
'compositor/wl_compositor.c', 'compositor/wl_compositor.c',
'compositor/wl_shell.c', 'compositor/wl_shell.c',
'compositor/xdg_shell.c', 'compositor/xdg_shell.c',
'compositor/protocols/xdg-shell.c',
] ]
wayland_scanner = find_program('wayland-scanner')
wayland_protocols_pkgdatadir = dep_wayland_proto.get_pkgconfig_variable('pkgdatadir')
protocols_src = meson.current_source_dir() + '/compositor/protocols'
run_command(['mkdir', '-p', protocols_src])
protocols = [ protocols = [
['/unstable/xdg-shell/xdg-shell-unstable-v6.xml', 'xdg-shell'] [ 'unstable', 'xdg-shell', 'xdg-shell-unstable-v6.xml' ]
] ]
foreach p : protocols foreach p : protocols
xml = wayland_protocols_pkgdatadir + p[0] xml = join_paths([wl_protocol_dir] + p)
compositor_src += wayland_scanner_code.process(xml)
run_command([wayland_scanner, 'code', xml, compositor_src += wayland_scanner_server.process(xml)
protocols_src + '/' + p[1] + '.c'])
run_command([wayland_scanner, 'server-header', xml,
protocols_src + '/' + p[1] + '.h'])
endforeach endforeach
executable('compositor', compositor_src, dependencies: dep_wlr, link_with: lib_shared) executable('compositor', compositor_src, dependencies: dep_wlr, link_with: lib_shared)

Loading…
Cancel
Save