]> git.ipfire.org Git - thirdparty/systemd.git/blob - tools/meson-render-jinja2.py
tree-wide: fix SPDX short identifier for LGPL-2.1-or-later
[thirdparty/systemd.git] / tools / meson-render-jinja2.py
1 #!/usr/bin/env python3
2 # SPDX-License-Identifier: LGPL-2.1-or-later
3
4 import jinja2
5 import re
6 import sys
7
8 def parse_config_h(filename):
9 # Parse config.h file generated by meson.
10 ans = {}
11 for line in open(filename):
12 m = re.match(r'#define\s+(\w+)\s+(.*)', line)
13 if not m:
14 continue
15 a, b = m.groups()
16 if b and b[0] in '0123456789"':
17 b = eval(b)
18 ans[a] = b
19 return ans
20
21 def render(filename, defines):
22 text = open(filename).read()
23 template = jinja2.Template(text, trim_blocks=True, undefined=jinja2.StrictUndefined)
24 return template.render(defines)
25
26 if __name__ == '__main__':
27 defines = parse_config_h(sys.argv[1])
28 print(render(sys.argv[2], defines))