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 |