#!/usr/bin/env python3 # Copyright (c) 2021 Intel Corporation # # SPDX-License-Identifier: Apache-2.0 import csv import subprocess from git import Git import pathlib import shutil import argparse def parse_args(): parser = argparse.ArgumentParser( description="Generate footprint data based on a predefined plan.", allow_abbrev=False) parser.add_argument("-p", "--plan", help="Path of test plan", required=True) return parser.parse_args() def main(): args = parse_args() g = Git(".") version = g.describe("--abbrev=12") pathlib.Path(f'footprint_data/{version}').mkdir(exist_ok=True, parents=True) with open(args.plan) as csvfile: csvreader = csv.reader(csvfile) for row in csvreader: name=row[0] feature=row[1] board=row[2] app=row[3] options=row[4] cmd = ['west', 'build', '-d', f'out/{name}/{feature}/{board}', '-b', board, f'{app}', '-t', 'footprint'] if options != '': cmd += ['--', f'{options}'] print(" ".join(cmd)) try: subprocess.check_output(cmd, stderr=subprocess.STDOUT, timeout=120, universal_newlines=True) print("Copying files...") pathlib.Path(f'footprint_data/{version}/{name}/{feature}/{board}').mkdir(parents=True, exist_ok=True) shutil.copy(f'out/{name}/{feature}/{board}/ram.json', f'footprint_data/{version}/{name}/{feature}/{board}') shutil.copy(f'out/{name}/{feature}/{board}/rom.json', f'footprint_data/{version}/{name}/{feature}/{board}') except subprocess.CalledProcessError as exc: print("Status : FAIL", exc.returncode, exc.output) if __name__ == "__main__": main()