use generators for wayland protocol gen
This commit is contained in:
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…
Reference in New Issue