rtems-bsps: Generate empty config.ini for arc/bsp combinations

- Generate a config for all BSPs in an arch
This commit is contained in:
Chris Johns
2022-10-28 08:40:53 +11:00
parent 26d50bdfb6
commit d64e10ea37

View File

@@ -1,7 +1,7 @@
#! /usr/bin/env python
#
# RTEMS (http://www.rtems.org/)
# Copyright 2020 Chris Johns (chrisj@rtems.org)
# Copyright 2020, 2022 Chris Johns (chrisj@rtems.org)
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -63,7 +63,10 @@ class ArchBsps:
def _out(self, line=''):
"""Output a line to the output buffer."""
self._output += [line]
if isinstance(line, list):
self._output += line
else:
self._output += [line]
def _collect(self, ext):
"""Collect the config files from the source tree."""
@@ -266,7 +269,7 @@ class ArchBsps:
(max_bsp, bsp, max_fb, family, p))
else:
self._out('%-*s |%s' % (max_bsp, bsp, family))
def pairs(self, arch_selector=None, family_selector=None, show_path=False):
"""Generate output as pairs"""
self._clear()
@@ -290,11 +293,70 @@ class ArchBsps:
self.archs[arch][family][bsp])
pair = arch + '/' + bsp
pair = '%-*s %s' % (max_arch + max_bsp + 1, pair, p)
self._out(pair)
else:
self._out('%s/%s' % (arch, bsp))
def config(self, arch_selector=None, family_selector=None):
"""Generate output as pairs"""
self._clear()
self._out(['# Generated by rtems-bsp',
'[DEFAULT]',
'# Build',
'RTEMS_BUILD_LABEL = DEFAULT',
'RTEMS_DEBUG = False',
'RTEMS_PROFILING = False',
'RTEMS_POSIX_API = True',
'# Tests',
'BUILD_TESTS = False',
'BUILD_BENCHMARKS = False',
'BUILD_FSTESTS = False',
'BUILD_LIBTESTS = False',
'BUILD_MPTESTS = False',
'BUILD_PSXTESTS = False',
'BUILD_PSXTMTESTS = False',
'BUILD_RHEALSTONE = False',
'BUILD_SAMPLES = True',
'BUILD_SMPTESTS = False',
'BUILD_SPTESTS = False',
'BUILD_TMTESTS = False',
'BUILD_UNITTESTS = False',
'BUILD_VALIDATIONTESTS = False',
'RTEMS_TEST_VERBOSITY = Normal',
'# Compliler',
'; WARNING_FLAGS = -Wall',
'; CC_WARNING_FLAGS = -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs',
'; CXX_WARNING_FLAGS = ',
'; OPTIMIZATION_FLAGS = -O2 -g -fdata-sections -ffunction-sections',
'; BSP_OPTIMIZATION_FLAGS = ${OPTIMIZATION_FLAGS}',
'; CPUKIT_OPTIMIZATION_FLAGS = ${OPTIMIZATION_FLAGS}',
'; TEST_OPTIMIZATION_FLAGS = ${OPTIMIZATION_FLAGS}',
'; LINKFLAGS = ',
'; LDFLAGS = -Wl,--gc-sections',
'# BSP',
'BSP_VERBOSE_FATAL_EXTENSION = 1',
'BSP_PRINT_EXCEPTION_CONTEXT = 1',
'BSP_RESET_BOARD_AT_EXIT = 1'])
self._out()
max_arch = self._max_arch_len()
max_bsp = self._max_bsp_len()
if arch_selector is None:
arch_matcher = []
else:
arch_matcher = [a.strip() for a in arch_selector.split(',')]
if family_selector is None:
family_matcher = []
else:
family_matcher = [f.strip() for f in family_selector.split(',')]
for arch in sorted(self.archs.keys()):
if arch_selector is None or arch in arch_matcher:
for family in sorted(self.archs[arch].keys()):
if family_selector is None or family in family_matcher:
for bsp in sorted(self.archs[arch][family].keys()):
self._out('[%s/%s]' % (arch, bsp))
self._out()
def run(args):
"""Runs the command"""
@@ -331,6 +393,10 @@ def run(args):
'--pairs',
help='Output architectures and BSPs in CPU/BSP format',
action='store_true')
argsp.add_argument('-C',
'--config',
help='Output architectures and BSPs in `config.ini` format',
action='store_true')
argopts = argsp.parse_args(args[1:])
@@ -345,15 +411,17 @@ def run(args):
family_selector=argopts.family,
show_path=argopts.paths,
show_title=argopts.title)
elif argopts.pairs:
ab.pairs(arch_selector=argopts.arch,
family_selector=argopts.family,
show_path=argopts.paths)
elif argopts.config:
ab.config(arch_selector=argopts.arch,
family_selector=argopts.family)
else:
if argopts.pairs:
ab.pairs(arch_selector=argopts.arch,
family_selector=argopts.family,
show_path=argopts.paths)
else:
ab.text(arch_selector=argopts.arch,
family_selector=argopts.family,
show_path=argopts.paths)
ab.text(arch_selector=argopts.arch,
family_selector=argopts.family,
show_path=argopts.paths)
print(os.linesep.join(ab.output()))