logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git

gen.lua (2955B)


  1. cflags{
  2. '-D HAVE_CONFIG_H',
  3. '-D FRIBIDI_LIB_STATIC',
  4. '-I $dir',
  5. '-I $outdir',
  6. '-I $outdir/include',
  7. '-I $srcdir/lib',
  8. }
  9. sub('tools.ninja', function()
  10. toolchain(config.host)
  11. cflags{
  12. '-D HAVE_STRINGIZE',
  13. '-D DONT_HAVE_FRIBIDI_CONFIG_H',
  14. '-D HAVE_STDLIB_H',
  15. '-D HAVE_STRING_H',
  16. '-D HAVE_STRINGS_H',
  17. '-D STDC_HEADERS',
  18. '-I $outdir/include',
  19. '-I $srcdir/lib',
  20. }
  21. cc('gen.tab/packtab.c')
  22. exe('gen-unicode-version', {'gen.tab/gen-unicode-version.c'})
  23. for _, t in ipairs{'arabic-shaping', 'bidi-type', 'joining-type', 'mirroring', 'brackets', 'brackets-type'} do
  24. exe('gen-'..t..'-tab', expand{'gen.tab/', {
  25. 'gen-'..t..'-tab.c',
  26. 'packtab.c.o',
  27. }}, {'$gendir/headers'})
  28. end
  29. end)
  30. set('compression', '2')
  31. rule('gentool', '$outdir/$tool $args $in >$out')
  32. local function gentool(tool, out, srcs, args)
  33. build('gentool', '$outdir/'..out, {expand{'$srcdir/gen.tab/unidata/', srcs}, '|', '$outdir/gen-'..tool}, {
  34. tool='gen-'..tool,
  35. args=args,
  36. })
  37. end
  38. gentool('unicode-version', 'include/fribidi-unicode-version.h', {'BidiMirroring.txt'})
  39. gentool('arabic-shaping-tab', 'arabic-shaping.tab.i', {'UnicodeData.txt'}, '$compression')
  40. gentool('bidi-type-tab', 'bidi-type.tab.i', {'UnicodeData.txt'}, '$compression')
  41. gentool('joining-type-tab', 'joining-type.tab.i', {'UnicodeData.txt', 'ArabicShaping.txt'}, '$compression')
  42. gentool('mirroring-tab', 'mirroring.tab.i', {'BidiMirroring.txt'}, '$compression')
  43. gentool('brackets-tab', 'brackets.tab.i', {'BidiBrackets.txt', 'UnicodeData.txt'}, '$compression')
  44. gentool('brackets-type-tab', 'brackets-type.tab.i', {'BidiBrackets.txt'}, '$compression')
  45. pkg.hdrs = {
  46. copy('$outdir/include', '$srcdir/lib', {
  47. 'fribidi-arabic.h',
  48. 'fribidi-begindecls.h',
  49. 'fribidi-bidi.h',
  50. 'fribidi-bidi-types.h',
  51. 'fribidi-bidi-types-list.h',
  52. 'fribidi-common.h',
  53. 'fribidi-char-sets.h',
  54. 'fribidi-char-sets-list.h',
  55. 'fribidi-deprecated.h',
  56. 'fribidi-enddecls.h',
  57. 'fribidi-flags.h',
  58. 'fribidi-joining.h',
  59. 'fribidi-joining-types.h',
  60. 'fribidi-joining-types-list.h',
  61. 'fribidi-mirroring.h',
  62. 'fribidi-brackets.h',
  63. 'fribidi-shape.h',
  64. 'fribidi-types.h',
  65. 'fribidi-unicode.h',
  66. 'fribidi.h',
  67. }),
  68. copy('$outdir/include', '$dir', {'fribidi-config.h'}),
  69. '$outdir/include/fribidi-unicode-version.h',
  70. }
  71. pkg.deps = {
  72. '$outdir/bidi-type.tab.i',
  73. '$outdir/joining-type.tab.i',
  74. '$outdir/arabic-shaping.tab.i',
  75. '$outdir/mirroring.tab.i',
  76. '$outdir/brackets.tab.i',
  77. '$outdir/brackets-type.tab.i',
  78. '$gendir/headers',
  79. }
  80. lib('libfribidi.a', [[
  81. lib/(
  82. fribidi.c
  83. fribidi-arabic.c
  84. fribidi-bidi.c
  85. fribidi-bidi-types.c
  86. fribidi-deprecated.c
  87. fribidi-char-sets.c
  88. fribidi-char-sets-cap-rtl.c
  89. fribidi-char-sets-cp1255.c
  90. fribidi-char-sets-cp1256.c
  91. fribidi-char-sets-iso8859-6.c
  92. fribidi-char-sets-iso8859-8.c
  93. fribidi-char-sets-utf8.c
  94. fribidi-joining.c
  95. fribidi-joining-types.c
  96. fribidi-mirroring.c
  97. fribidi-brackets.c
  98. fribidi-run.c
  99. fribidi-shape.c
  100. )
  101. ]])
  102. fetch 'git'