mirror of
https://github.com/hathach/tinyusb.git
synced 2026-08-18 11:02:16 +00:00
run hil_hfp on gcc build
Co-authored-by: Copilot <copilot@github.com> Signed-off-by: HiFiPhile <admin@hifiphile.com>
This commit is contained in:
@ -3,45 +3,60 @@ import json
|
||||
import os
|
||||
|
||||
|
||||
def _resolve_config_path(config_file):
|
||||
if os.path.exists(config_file):
|
||||
return config_file
|
||||
|
||||
script_relative = os.path.join(os.path.dirname(__file__), config_file)
|
||||
if os.path.exists(script_relative):
|
||||
return script_relative
|
||||
|
||||
raise FileNotFoundError(f'Config file not found: {config_file}')
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('config_file', help='Configuration JSON file')
|
||||
parser.add_argument('config_files', nargs='+', help='Configuration JSON file(s)')
|
||||
args = parser.parse_args()
|
||||
|
||||
config_file = args.config_file
|
||||
|
||||
# if config file is not found, try to find it in the same directory as this script
|
||||
if not os.path.exists(config_file):
|
||||
config_file = os.path.join(os.path.dirname(__file__), config_file)
|
||||
with open(config_file) as f:
|
||||
config = json.load(f)
|
||||
|
||||
matrix = {
|
||||
'arm-gcc': [],
|
||||
'esp-idf': []
|
||||
}
|
||||
for board in config['boards']:
|
||||
name = board['name']
|
||||
flasher = board['flasher']
|
||||
if flasher['name'] == 'esptool':
|
||||
toolchain = 'esp-idf'
|
||||
else:
|
||||
toolchain = 'arm-gcc'
|
||||
|
||||
build_board = f'-b {name}'
|
||||
if 'build' in board:
|
||||
if 'args' in board['build']:
|
||||
build_board += ' ' + ' '.join(f'-D{a}' for a in board['build']['args'])
|
||||
if 'flags_on' in board['build']:
|
||||
for f in board['build']['flags_on']:
|
||||
if f == '':
|
||||
matrix[toolchain].append(build_board)
|
||||
else:
|
||||
matrix[toolchain].append(f'{build_board} -f1 {f.replace(" ", " -f1 ")}')
|
||||
seen = {toolchain: set() for toolchain in matrix}
|
||||
|
||||
def append_build_arg(toolchain, build_arg):
|
||||
if build_arg not in seen[toolchain]:
|
||||
seen[toolchain].add(build_arg)
|
||||
matrix[toolchain].append(build_arg)
|
||||
|
||||
for config_file in args.config_files:
|
||||
with open(_resolve_config_path(config_file)) as f:
|
||||
config = json.load(f)
|
||||
|
||||
for board in config['boards']:
|
||||
name = board['name']
|
||||
flasher = board['flasher']
|
||||
if flasher['name'] == 'esptool':
|
||||
toolchain = 'esp-idf'
|
||||
else:
|
||||
matrix[toolchain].append(build_board)
|
||||
else:
|
||||
matrix[toolchain].append(build_board)
|
||||
toolchain = 'arm-gcc'
|
||||
|
||||
build_board = f'-b {name}'
|
||||
if 'build' in board:
|
||||
if 'args' in board['build']:
|
||||
build_board += ' ' + ' '.join(f'-D{a}' for a in board['build']['args'])
|
||||
if 'flags_on' in board['build']:
|
||||
for f in board['build']['flags_on']:
|
||||
if f == '':
|
||||
append_build_arg(toolchain, build_board)
|
||||
else:
|
||||
append_build_arg(toolchain, f'{build_board} -f1 {f.replace(" ", " -f1 ")}')
|
||||
else:
|
||||
append_build_arg(toolchain, build_board)
|
||||
else:
|
||||
append_build_arg(toolchain, build_board)
|
||||
|
||||
print(json.dumps(matrix))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user