aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/scripts/yasm.py
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2022-03-09 12:34:04 -0500
committerXavier Claessens <xclaesse@gmail.com>2022-10-24 11:06:57 +0200
commitd29ef2b128c651fa83f1d923290d66cc8eb63223 (patch)
tree73aae2279a382fc719d0bb8a0e9b40740922a8e0 /mesonbuild/scripts/yasm.py
parent01ee14133906e4afa55cdc52eeb1c9e78bbeced5 (diff)
downloadmeson-d29ef2b128c651fa83f1d923290d66cc8eb63223.zip
meson-d29ef2b128c651fa83f1d923290d66cc8eb63223.tar.gz
meson-d29ef2b128c651fa83f1d923290d66cc8eb63223.tar.bz2
Add yasm as fallback for nasm language
Diffstat (limited to 'mesonbuild/scripts/yasm.py')
-rw-r--r--mesonbuild/scripts/yasm.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/mesonbuild/scripts/yasm.py b/mesonbuild/scripts/yasm.py
new file mode 100644
index 0000000..730ff3e
--- /dev/null
+++ b/mesonbuild/scripts/yasm.py
@@ -0,0 +1,22 @@
+import argparse
+import subprocess
+import typing as T
+
+def run(args: T.List[str]) -> int:
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--depfile')
+ options, yasm_cmd = parser.parse_known_args(args)
+
+ # Compile
+ returncode = subprocess.call(yasm_cmd)
+ if returncode != 0:
+ return returncode
+
+ # Capture and write depfile
+ ret = subprocess.run(yasm_cmd + ['-M'], capture_output=True)
+ if ret.returncode != 0:
+ return ret.returncode
+ with open(options.depfile, 'wb') as f:
+ f.write(ret.stdout)
+
+ return 0