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()

Reply via email to