We have multiple code generation scripts in utils/, mixed with other miscellaneous utilities, as well as a larger code base based on mojom in utils/ipc/. To make code sharing easier between the generator scripts, without creating a mess in the utils/ directory, move all the code generation code to utils/codegen/. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
39 lines
950 B
Python
Executable file
39 lines
950 B
Python
Executable file
#!/usr/bin/env python3
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
# Copyright (C) 2020, Google Inc.
|
|
#
|
|
# Author: Paul Elder <paul.elder@ideasonboard.com>
|
|
#
|
|
# Generate header file to contain lttng tracepoints
|
|
|
|
import datetime
|
|
import jinja2
|
|
import pathlib
|
|
import os
|
|
import sys
|
|
|
|
def main(argv):
|
|
if len(argv) < 4:
|
|
print(f'Usage: {argv[0]} include_build_dir output template tp_files...')
|
|
return 1
|
|
|
|
output = argv[2]
|
|
template = argv[3]
|
|
|
|
year = datetime.datetime.now().year
|
|
path = pathlib.Path(output).absolute().relative_to(argv[1])
|
|
|
|
source = ''
|
|
for fname in argv[4:]:
|
|
source += open(fname, 'r', encoding='utf-8').read() + '\n\n'
|
|
|
|
template = jinja2.Template(open(template, 'r', encoding='utf-8').read())
|
|
string = template.render(year=year, path=path, source=source)
|
|
|
|
f = open(output, 'w', encoding='utf-8').write(string)
|
|
|
|
return 0
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main(sys.argv))
|