123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/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.")
- 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()
|