diff options
| author | Michael Forney <mforney@mforney.org> | 2016-10-23 23:55:40 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2016-10-30 13:44:58 -0700 |
| commit | 232d3f227c6eef2e2003a1e25786d20ed186e25f (patch) | |
| tree | de59d498ed828265821855e3318b277754d36410 | |
| parent | 1e4272543281e050bb222945376a224a5ec9fd87 (diff) | |
Add waylandproto rule and helper
| -rw-r--r-- | desktop/gen.rc | 2 | ||||
| -rw-r--r-- | desktop/wayland/gen.rc | 22 | ||||
| -rw-r--r-- | ninja.rc | 9 | ||||
| -rw-r--r-- | rules.ninja | 3 |
4 files changed, 21 insertions, 15 deletions
diff --git a/desktop/gen.rc b/desktop/gen.rc index 1eb79be3..e10c250d 100644 --- a/desktop/gen.rc +++ b/desktop/gen.rc @@ -1,5 +1,3 @@ -rule wayland_proto 'wayland-scanner $type $in $out.tmp && mv $out.tmp $out' - subgen expat subgen fontconfig subgen freetype diff --git a/desktop/wayland/gen.rc b/desktop/wayland/gen.rc index 38a06db8..bbd76953 100644 --- a/desktop/wayland/gen.rc +++ b/desktop/wayland/gen.rc @@ -3,7 +3,7 @@ cflags\ -isystem '$builddir'/desktop/libffi/include\ -I include\ -I '$dir' \ - -I '$outdir'/include \ + -I '$outdir'/include\ -I '$srcdir'/src build '$outdir'/wayland-version.h sed '$srcdir'/src/wayland-version.h.in ; exprs=(\ @@ -21,36 +21,32 @@ exe wayland-scanner -d phony/desktop/expat/headers\ src/^(scanner.c wayland-util.c.o)\ '$builddir'/desktop/expat/libexpat.a -for(type in client server) { - build '$outdir'/include/wayland-$type-protocol.h\ - wayland_proto '$srcdir'/protocol/wayland.xml - with type $type-header -} +waylandproto protocol/wayland.xml\ + include/wayland-^(client server)^-protocol.h\ + src/wayland-protocol.c + hdrs=wayland-^(client-core client egl-core egl server-core server util version)^.h for(hdr in $hdrs) build '$outdir'/include/$hdr copy '$srcdir'/src/$hdr build '$outdir'/include/wayland-cursor.h copy '$srcdir'/cursor/wayland-cursor.h phony headers include/^($hdrs wayland-^(cursor.h (client server)^-protocol.h)) -build '$outdir'/wayland-protocol.c\ - wayland_proto '$srcdir'/protocol/wayland.xml -with type code -cc '$outdir'/wayland-protocol.c - lib libwayland-server.a -d 'phony/$dir/headers' src/^(\ connection.c.o\ wayland-os.c.o\ + wayland-protocol.c.o\ wayland-server.c\ wayland-shm.c\ wayland-util.c.o\ event-loop.c\ -) wayland-protocol.c.o '$builddir'/desktop/libffi/libffi.a +) '$builddir'/desktop/libffi/libffi.a lib libwayland-client.a -d 'phony/$dir/headers' src/^(\ connection.c.o\ wayland-os.c.o\ + wayland-protocol.c.o\ wayland-client.c\ wayland-util.c.o\ -) wayland-protocol.c.o '$builddir'/desktop/libffi/libffi.a +) '$builddir'/desktop/libffi/libffi.a fetch git @@ -151,6 +151,15 @@ fn yacc { } } +fn waylandproto { + proto='$srcdir'/$1 + shift + build '$outdir'/$1 waylandproto $proto ; with type client-header + build '$outdir'/$2 waylandproto $proto ; with type server-header + build '$outdir'/$3 waylandproto $proto ; with type code + cc '$outdir'/$3 '||' phony/desktop/wayland/headers +} + # packaging rules fn file { diff --git a/rules.ninja b/rules.ninja index 6ab2b0da..89842b63 100644 --- a/rules.ninja +++ b/rules.ninja @@ -53,6 +53,9 @@ rule sed rule awk command = awk $expr $in >$out.tmp && mv $out.tmp $out +rule waylandproto + command = wayland-scanner $type $in $out.tmp && mv $out.tmp $out + rule githash command = rc ./scripts/hash.rc $builddir/$repo.git $args $in >$out.tmp && mv $out.tmp $out |
