You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.9 KiB
64 lines
1.9 KiB
#!/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()
|
|
|