gen.lua (2955B)
- cflags{
- '-D HAVE_CONFIG_H',
- '-D FRIBIDI_LIB_STATIC',
- '-I $dir',
- '-I $outdir',
- '-I $outdir/include',
- '-I $srcdir/lib',
- }
- sub('tools.ninja', function()
- toolchain(config.host)
- cflags{
- '-D HAVE_STRINGIZE',
- '-D DONT_HAVE_FRIBIDI_CONFIG_H',
- '-D HAVE_STDLIB_H',
- '-D HAVE_STRING_H',
- '-D HAVE_STRINGS_H',
- '-D STDC_HEADERS',
- '-I $outdir/include',
- '-I $srcdir/lib',
- }
- cc('gen.tab/packtab.c')
- exe('gen-unicode-version', {'gen.tab/gen-unicode-version.c'})
- for _, t in ipairs{'arabic-shaping', 'bidi-type', 'joining-type', 'mirroring', 'brackets', 'brackets-type'} do
- exe('gen-'..t..'-tab', expand{'gen.tab/', {
- 'gen-'..t..'-tab.c',
- 'packtab.c.o',
- }}, {'$gendir/headers'})
- end
- end)
- set('compression', '2')
- rule('gentool', '$outdir/$tool $args $in >$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('arabic-shaping-tab', 'arabic-shaping.tab.i', {'UnicodeData.txt'}, '$compression')
- 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('mirroring-tab', 'mirroring.tab.i', {'BidiMirroring.txt'}, '$compression')
- gentool('brackets-tab', 'brackets.tab.i', {'BidiBrackets.txt', 'UnicodeData.txt'}, '$compression')
- gentool('brackets-type-tab', 'brackets-type.tab.i', {'BidiBrackets.txt'}, '$compression')
- pkg.hdrs = {
- copy('$outdir/include', '$srcdir/lib', {
- 'fribidi-arabic.h',
- 'fribidi-begindecls.h',
- 'fribidi-bidi.h',
- 'fribidi-bidi-types.h',
- 'fribidi-bidi-types-list.h',
- 'fribidi-common.h',
- 'fribidi-char-sets.h',
- 'fribidi-char-sets-list.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-brackets.h',
- 'fribidi-shape.h',
- 'fribidi-types.h',
- 'fribidi-unicode.h',
- 'fribidi.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',
- '$outdir/brackets.tab.i',
- '$outdir/brackets-type.tab.i',
- '$gendir/headers',
- }
- lib('libfribidi.a', [[
- lib/(
- fribidi.c
- fribidi-arabic.c
- fribidi-bidi.c
- fribidi-bidi-types.c
- fribidi-deprecated.c
- fribidi-char-sets.c
- fribidi-char-sets-cap-rtl.c
- fribidi-char-sets-cp1255.c
- fribidi-char-sets-cp1256.c
- fribidi-char-sets-iso8859-6.c
- fribidi-char-sets-iso8859-8.c
- fribidi-char-sets-utf8.c
- fribidi-joining.c
- fribidi-joining-types.c
- fribidi-mirroring.c
- fribidi-brackets.c
- fribidi-run.c
- fribidi-shape.c
- )
- ]])
- fetch 'git'