summaryrefslogtreecommitdiff
path: root/pkg/fribidi/gen.rc
blob: 18d550751caddb038c2891693214f6930d5dfbcd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
cflags\
	-D HAVE_CONFIG_H\
	-I include\
	-I '$dir' \
	-I '$outdir' \
	-I '$outdir'/include\
	-I '$srcdir'/lib

{
	cc gen.tab/packtab.c
	exe gen-unicode-version gen.tab/gen-unicode-version.c
	for(t in bidi-type joining-type arabic-shaping mirroring)
		exe gen-$t-tab -d '$dir'/headers gen.tab/^(gen-$t-tab.c packtab.c.o)
} >tools.ninja ; subninja tools.ninja

set compression 2

rule gentool '$outdir/$tool $args $in >$out.tmp && mv $out.tmp $out'
fn gentool {
	tool=$1
	out=$2
	shift 2
	build '$outdir'/$out gentool '$srcdir'/gen.tab/unidata/$* '|' '$outdir'/gen-$tool
	with tool gen-$tool
}

gentool unicode-version include/fribidi-unicode-version.h BidiMirroring.txt
gentool bidi-type-tab bidi-type.tab.i UnicodeData.txt ; with args '$compression'
gentool joining-type-tab joining-type.tab.i UnicodeData.txt ArabicShaping.txt ; with args '$compression'
gentool arabic-shaping-tab arabic-shaping.tab.i UnicodeData.txt ; with args '$compression'
gentool mirroring-tab mirroring.tab.i BidiMirroring.txt ; with args '$compression'

hdrs=(\
	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\
)
for(hdr in $hdrs)
	build '$outdir'/include/$hdr copy '$srcdir'/lib/$hdr
build '$outdir'/include/fribidi-config.h copy '$dir'/fribidi-config.h
phony headers '$outdir'/include/^($hdrs fribidi-config.h fribidi-unicode-version.h)

phony deps\
	'$outdir'/^(bidi-type joining-type arabic-shaping mirroring)^.tab.i\
	'$dir'/headers

lib libfribidi.a -d '$dir'/deps 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