Skip to content

Commit

Permalink
[dox] improve gen_modules_doc
Browse files Browse the repository at this point in the history
- take the module name as page title
- document new autoload feature
  • Loading branch information
flixr committed Jun 21, 2016
1 parent aaae068 commit ede3a2d
Showing 1 changed file with 28 additions and 6 deletions.
34 changes: 28 additions & 6 deletions sw/tools/doxygen_gen/gen_modules_doc.py
Expand Up @@ -34,8 +34,10 @@ def get_module_dir(module):
def modules_category_list(category, modules):
s = "@subsection modules_category_" + category.lower() + " " + category.title() + " modules\n\n"
for (fname, m) in sorted(modules.items()):
page_name = "module__" + fname[:-4].lower()
s += "- " + fname + " @subpage " + page_name + "\n"
mname = fname[:-4].lower()
page_name = "module__" + mname
(brief, _) = get_module_description(m)
s += "- @subpage {} : {}\n".format(page_name, brief)
return s + "\n\n"


Expand Down Expand Up @@ -77,11 +79,13 @@ def module_page(filename, module):
(brief, details) = get_module_description(module)
mname = filename[:-4].lower()
page_name = "module__" + mname
s = dox_new_page(page_name, brief)
s += "Module XML file: @c " + filename + "\n\n"
title = mname + " module"
s = dox_new_page(page_name, title)
s += "<b>" + brief + "</b>\n\n"
s += details + "\n"
s += get_xml_example(filename, module)
s += module_configuration(module, mname)
s += module_autoloads(module, mname)
s += module_depends_conflicts(module, mname)
s += module_functions(module, mname)
s += module_datalink(module, mname)
Expand Down Expand Up @@ -179,12 +183,12 @@ def module_depends_conflicts(module, mname):
if deps:
s += "@section dependencies__{} Dependencies\n".format(mname)
for d in deps:
s += "- {} @ref module__{}\n".format(d, d.lower())
s += "- @ref module__{}\n".format(d.lower())
conflicts = get_module_conflicts(module)
if conflicts:
s += "@section conflicts__{} Conflicts\n".format(mname)
for c in conflicts:
s += "- {} @ref module__{}\n".format(c, c.lower())
s += "- @ref module__{}\n".format(c.lower())
return s


Expand All @@ -200,6 +204,24 @@ def get_module_conflicts(module):
return [c.strip() for c in conflicts]


def module_autoloads(module, mname):
s = ""
autos = get_module_autoloads(module)
if autos:
s += "@section autoloads__{} Auto-loaded modules\n".format(mname)
s += "The following modules are automatically loaded (just as if you had added them in the airframe file)\n"
for a in autos:
s += "- @ref module__{}\n".format(a.lower())
return s


def get_module_autoloads(module):
autoloads = module.findall(".autoload")
def module_name(m):
return (m.get('name') + m.get('type', '')).strip()
return [module_name(a) for a in autoloads]


def get_module_name(module):
return module.get('name')

Expand Down

0 comments on commit ede3a2d

Please sign in to comment.