xref: /aosp_15_r20/external/harfbuzz_ng/src/gen-ragel-artifacts.py (revision 2d1272b857b1f7575e6e246373e1cb218663db8a)
1*2d1272b8SAndroid Build Coastguard Worker#!/usr/bin/env python3
2*2d1272b8SAndroid Build Coastguard Worker
3*2d1272b8SAndroid Build Coastguard Worker"This tool is intended to be used from meson"
4*2d1272b8SAndroid Build Coastguard Worker
5*2d1272b8SAndroid Build Coastguard Workerimport os, os.path, sys, subprocess, shutil
6*2d1272b8SAndroid Build Coastguard Worker
7*2d1272b8SAndroid Build Coastguard Workerragel = sys.argv[1]
8*2d1272b8SAndroid Build Coastguard Workerif not ragel:
9*2d1272b8SAndroid Build Coastguard Worker	sys.exit ('You have to install ragel if you are going to develop HarfBuzz itself')
10*2d1272b8SAndroid Build Coastguard Worker
11*2d1272b8SAndroid Build Coastguard Workerif len (sys.argv) < 4:
12*2d1272b8SAndroid Build Coastguard Worker	sys.exit (__doc__)
13*2d1272b8SAndroid Build Coastguard Worker
14*2d1272b8SAndroid Build Coastguard WorkerOUTPUT = sys.argv[2]
15*2d1272b8SAndroid Build Coastguard WorkerCURRENT_SOURCE_DIR = sys.argv[3]
16*2d1272b8SAndroid Build Coastguard WorkerINPUT = sys.argv[4]
17*2d1272b8SAndroid Build Coastguard Worker
18*2d1272b8SAndroid Build Coastguard Workeroutdir = os.path.dirname (OUTPUT)
19*2d1272b8SAndroid Build Coastguard Workershutil.copy (INPUT, outdir)
20*2d1272b8SAndroid Build Coastguard Workerrl = os.path.basename (INPUT)
21*2d1272b8SAndroid Build Coastguard Workerhh = rl.replace ('.rl', '.hh')
22*2d1272b8SAndroid Build Coastguard Workersubprocess.Popen (ragel.split() + ['-e', '-F1', '-o', hh, rl], cwd=outdir).wait ()
23*2d1272b8SAndroid Build Coastguard Worker
24*2d1272b8SAndroid Build Coastguard Worker# copy it also to src/
25*2d1272b8SAndroid Build Coastguard Workershutil.copyfile (os.path.join (outdir, hh), os.path.join (CURRENT_SOURCE_DIR, hh))
26