from bsp import list_bsp
from py.config.base import config_list
def header():
return """
List of RTEMS BSP Options
"""
def footer():
return """
"""
TABLE_START = """
Option | Default Value | Description |
"""
TABLE_END = """
"""
TABLE_ROW ="""
%s |
%s |
%s |
"""
BSP_HEADING = """
%s
"""
TABLE_HEADING = """
%s
"""
def rtems_cmd_docs(ctx):
fp = open(ctx.options.file_out, "w")
fp.write(header())
full = []
for arch in list_bsp:
full.append(arch)
for bsp in list_bsp[arch]:
full.append("%s/%s" % (arch, bsp))
all = ["general", "host"] + sorted(full)
def cfg_get(entry):
for config in config_list:
if config.name == entry:
return config
# raise Exception("Not found %s" % entry) # XXX: Because not all BSPs are added.
for entry in all:
cfg = cfg_get(entry)
if cfg == None:
continue # XXX: Hack because not all BSPs are added.
# print cfg.name, cfg
c = cfg()
fp.write(BSP_HEADING % c.name)
def print_opt(name, values):
if not list(values):
return
fp.write(TABLE_HEADING % "%s Options" % name)
fp.write(TABLE_START)
for option in values:
opt = values[option]
if type(opt.value) is list:
value = " ".join(opt.value)
else:
value = opt.value
fp.write(TABLE_ROW % (opt.name, value or " ", opt.descr))
fp.write(TABLE_END)
print_opt("Build", c.option_build)
print_opt("Header", c.option_header)
fp.write(footer())
print("Wrote options.html")