diff options
| author | Michael Forney <mforney@mforney.org> | 2017-09-17 00:03:34 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2017-09-25 19:23:06 -0700 |
| commit | ba94a8513d9a0aadb3f2c834c74b64aa644c61e8 (patch) | |
| tree | 48ac6c85baa7b9d960b9e1e726a906e61ca60967 /pkg/fribidi/gen.lua | |
| parent | cb362b531d79708a259bbf070dee5104fd63df08 (diff) | |
Rewrite ninja generation scripts in Lua
Diffstat (limited to 'pkg/fribidi/gen.lua')
| -rw-r--r-- | pkg/fribidi/gen.lua | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/pkg/fribidi/gen.lua b/pkg/fribidi/gen.lua new file mode 100644 index 00000000..4f992d1f --- /dev/null +++ b/pkg/fribidi/gen.lua @@ -0,0 +1,84 @@ +cflags{ + '-D HAVE_CONFIG_H', + '-I include', + '-I $dir', + '-I $outdir', + '-I $outdir/include', + '-I $srcdir/lib', +} + +sub('tools.ninja', function() + cc('gen.tab/packtab.c') + exe('gen-unicode-version', {'gen.tab/gen-unicode-version.c'}) + for _, t in ipairs{'bidi-type', 'joining-type', 'arabic-shaping', 'mirroring'} do + exe('gen-'..t..'-tab', expand{'gen.tab/', { + 'gen-'..t..'-tab.c', + 'packtab.c.o', + }}, {'$dir/headers'}) + end +end) + +set('compression', '2') + +rule('gentool', '$outdir/$tool $args $in >$out.tmp && mv $out.tmp $out') +local function gentool(tool, out, srcs, args) + build('gentool', '$outdir/'..out, {expand{'$srcdir/gen.tab/unidata/', srcs}, '|', '$outdir/gen-'..tool}, { + tool='gen-'..tool, + args=args, + }) +end + +gentool('unicode-version', 'include/fribidi-unicode-version.h', {'BidiMirroring.txt'}) +gentool('bidi-type-tab', 'bidi-type.tab.i', {'UnicodeData.txt'}, '$compression') +gentool('joining-type-tab', 'joining-type.tab.i', {'UnicodeData.txt', 'ArabicShaping.txt'}, '$compression') +gentool('arabic-shaping-tab', 'arabic-shaping.tab.i', {'UnicodeData.txt'}, '$compression') +gentool('mirroring-tab', 'mirroring.tab.i', {'BidiMirroring.txt'}, '$compression') + +pkg.hdrs = { + copy('$outdir/include', '$srcdir/lib', { + 'fribidi.h', + 'fribidi-arabic.h', + 'fribidi-begindecls.h', + 'fribidi-bidi.h', + 'fribidi-bidi-types.h', + 'fribidi-bidi-types-list.h', + 'fribidi-common.h', + 'fribidi-deprecated.h', + 'fribidi-enddecls.h', + 'fribidi-flags.h', + 'fribidi-joining.h', + 'fribidi-joining-types.h', + 'fribidi-joining-types-list.h', + 'fribidi-mirroring.h', + 'fribidi-shape.h', + 'fribidi-types.h', + 'fribidi-unicode.h', + }), + copy('$outdir/include', '$dir', {'fribidi-config.h'}), + '$outdir/include/fribidi-unicode-version.h', +} +pkg.deps = { + '$outdir/bidi-type.tab.i', + '$outdir/joining-type.tab.i', + '$outdir/arabic-shaping.tab.i', + '$outdir/mirroring.tab.i', + '$dir/headers', +} + +lib('libfribidi.a', [[ + lib/( + fribidi.c + fribidi-arabic.c + fribidi-bidi.c + fribidi-bidi-types.c + fribidi-deprecated.c + fribidi-joining.c + fribidi-joining-types.c + fribidi-mem.c + fribidi-mirroring.c + fribidi-run.c + fribidi-shape.c + ) +]]) + +fetch 'git' |
