|
|
|
## Populates "targets" for all names in the collection "libnames" that are
|
|
|
|
## part of "collection".
|
|
|
|
##
|
|
|
|
## Note that "packagename" and "internal" while not used
|
|
|
|
## in the function itself are referenced in the template.
|
|
|
|
## When "internal" is true, documentation for non-public headers
|
|
|
|
## and sources is also taken as input to Doxygen (see INPUT).
|
|
|
|
<%namespace import="doxy_base" file="Doxyfile.base"/>
|
|
|
|
<%def name="gen_doxyfile(libnames, packagename, collection, internal)">
|
|
|
|
<%
|
|
|
|
import itertools
|
|
|
|
import glob
|
|
|
|
import os
|
|
|
|
targets = []
|
|
|
|
docpackage = packagename.replace('+', 'p').lower()
|
|
|
|
for libname in libnames:
|
|
|
|
target = None
|
|
|
|
for p in collection:
|
|
|
|
if p.name == libname:
|
|
|
|
target = p
|
|
|
|
assert(target)
|
|
|
|
targets.append(target)
|
|
|
|
srcdoc = []
|
|
|
|
for dirpath, dirnames, filenames in os.walk('src/%s' % docpackage):
|
|
|
|
for filename in filenames:
|
|
|
|
if os.path.splitext(filename)[1] == '.md':
|
|
|
|
srcdoc.append(os.path.join(dirpath, filename))
|
|
|
|
|
|
|
|
version = settings.core_version if packagename=='Core' else settings.cpp_version
|
|
|
|
doxy_input = ' \\\n'.join(sorted(set(
|
|
|
|
itertools.chain(
|
|
|
|
itertools.chain.from_iterable(
|
|
|
|
target.public_headers +
|
|
|
|
([]
|
|
|
|
if not internal
|
|
|
|
else target.headers + target.src)
|
|
|
|
for target in targets),
|
|
|
|
glob.glob('doc/*.md'),
|
|
|
|
glob.glob('doc/%s/*.md' % docpackage),
|
|
|
|
[] if not internal else srcdoc)
|
|
|
|
)))
|
|
|
|
%>
|
|
|
|
${doxy_base(packagename, version, doxy_input, internal)}
|
|
|
|
</%def>
|