blob: 032c3a3a7814c8398c86f872a0e16148d8415a4b [file] [log] [blame]
#!/usr/bin/env fuchsia-vendored-python
# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Runs the zbi tool, taking care of unwrapping response files."""
import argparse
import os
import subprocess
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--zbi", help="Path to the zbi tool", required=True)
parser.add_argument(
"--depfile", help="Path to the depfile generated for GN", required=True
)
parser.add_argument(
"--rspfile",
help="Path to the response file for the zbi tool",
required=True,
)
args, zbi_args = parser.parse_known_args()
intermediate_depfile = args.depfile + ".intermediate"
# Run the zbi tool.
command = [
args.zbi,
"--depfile",
intermediate_depfile,
]
with open(args.rspfile, "r") as rspfile:
command.extend([l.strip() for l in rspfile.readlines()])
subprocess.check_call(command + zbi_args)
# Write the final depfile.
with open(intermediate_depfile, "r") as depfile:
contents = depfile.read().strip()
with open(args.depfile, "w") as final_depfile:
final_depfile.write(contents + " " + args.rspfile)
# Remove the intermediate depfile.
os.remove(intermediate_depfile)
if __name__ == "__main__":
main()