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