blob: 44284f794cad74f74521b7106480695cff2a995d [file] [log] [blame]
# Copyright 2020 Texas Instruments Incorporated
"""A wrapper to run the SDK makefiles for Platform driver generation
Args:
1. [TI Simplelink SDK Root]
2. [Matter repository Root]
3. [Path to built drivers in repo]
"""
import argparse
import os
import shutil
import subprocess
import sys
parser = argparse.ArgumentParser()
parser.add_argument('--sdk', help="TI SDK root")
parser.add_argument('--chip-root', help="CHIP Root")
parser.add_argument('--src-path-drivers', help="the path where the built drivers exist")
parser.add_argument('--src-path-driverlib', help="the path where the built driverlib exist")
parser.add_argument('--dest-path', help="path where drivers will be copied to")
args = parser.parse_args()
ret = False
if os.getenv('_PW_ACTUAL_ENVIRONMENT_ROOT'):
CHIP_ENV_ROOT = os.getenv('_PW_ACTUAL_ENVIRONMENT_ROOT')
else:
CHIP_ENV_ROOT = os.path.join(args.chip_root, ".environment")
GCC_ARMCOMPILER_PATH = os.path.join(CHIP_ENV_ROOT, "cipd", "packages", "arm")
if not os.path.isdir(GCC_ARMCOMPILER_PATH):
print("Compiler Path is invalid: " + GCC_ARMCOMPILER_PATH)
sys.exit(2)
source_file_drivers = args.sdk + args.src_path_drivers
source_file_driverlib = args.sdk + args.src_path_driverlib
dest_path = args.dest_path
make_command = ["make", "-C", args.sdk, "CMAKE=cmake", "GCC_ARMCOMPILER=" +
GCC_ARMCOMPILER_PATH, "IAR_ARMCOMPILER=", "TICLANG_ARMCOMPILER=", "GENERATOR=Ninja"]
pid = os.fork()
if pid:
status = os.wait()
if os.path.exists(source_file_drivers):
shutil.copy(source_file_drivers, dest_path)
else:
print("Driver does not exist or path is incorrect.")
sys.exit(2)
if os.path.exists(source_file_driverlib):
shutil.copy(source_file_driverlib, dest_path)
else:
print("Driverlib does not exist or path is incorrect.")
sys.exit(2)
else:
make_command = ["make", "-C", args.sdk, "CMAKE=cmake", "GCC_ARMCOMPILER=" +
GCC_ARMCOMPILER_PATH, "IAR_ARMCOMPILER=", "TICLANG_ARMCOMPILER=", "GENERATOR=Ninja"]
res = subprocess.run(make_command, capture_output=True, encoding="utf8")
if res.returncode != 0:
print("!!!!!!!!!!!! EXEC FAILED !!!!!!!!!!!!!!!!")
print("!!!!!!!!!!!!!!! STDOUT !!!!!!!!!!!!!!!!!!")
print("%s" % res.stdout)
print("!!!!!!!!!!!!!!! STDERR !!!!!!!!!!!!!!!!!!")
print("%s" % res.stderr)
print("res.returncode: %d", res.returncode)
sys.exit(1)