Module: Mesa Branch: main Commit: 2d3273e388171ce2dcb6a3aab71066f18820767b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2d3273e388171ce2dcb6a3aab71066f18820767b
Author: Karol Herbst <kher...@redhat.com> Date: Thu Jan 11 09:58:23 2024 +0100 nak/algebraic: write code to an output file Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26999> --- src/nouveau/compiler/meson.build | 5 +++-- src/nouveau/compiler/nak_nir_algebraic.py | 20 ++++++++++++-------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/nouveau/compiler/meson.build b/src/nouveau/compiler/meson.build index dadf1aaaaa9..535294ecf1f 100644 --- a/src/nouveau/compiler/meson.build +++ b/src/nouveau/compiler/meson.build @@ -125,9 +125,10 @@ nak_nir_algebraic_c = custom_target( input : 'nak_nir_algebraic.py', output : 'nak_nir_algebraic.c', command : [ - prog_python, '@INPUT@', '-p', dir_compiler_nir, + prog_python, '@INPUT@', + '-p', dir_compiler_nir, + '--out', '@OUTPUT@', ], - capture : true, depend_files : nir_algebraic_depends, ) diff --git a/src/nouveau/compiler/nak_nir_algebraic.py b/src/nouveau/compiler/nak_nir_algebraic.py index 9e728d2a0da..87a2225b038 100644 --- a/src/nouveau/compiler/nak_nir_algebraic.py +++ b/src/nouveau/compiler/nak_nir_algebraic.py @@ -40,20 +40,24 @@ algebraic_lowering = [ def main(): parser = argparse.ArgumentParser() + parser.add_argument('--out', required=True, help='Output file.') parser.add_argument('-p', '--import-path', required=True) args = parser.parse_args() sys.path.insert(0, args.import_path) import nir_algebraic # pylint: disable=import-error - print('#include "nak_private.h"') - - print(nir_algebraic.AlgebraicPass("nak_nir_lower_algebraic_late", - algebraic_lowering, - [ - ("const struct nak_compiler *", "nak"), - ]).render()) - + try: + with open(args.out, 'w', encoding='utf-8') as f: + f.write('#include "nak_private.h"') + f.write(nir_algebraic.AlgebraicPass( + "nak_nir_lower_algebraic_late", + algebraic_lowering, + [ + ("const struct nak_compiler *", "nak"), + ]).render()) + except Exception: + sys.exit(1) if __name__ == '__main__': main()