Doxyfile.include 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. ## Populates "targets" for all names in the collection "libnames" that are
  2. ## part of "collection".
  3. ##
  4. ## Note that "packagename" and "internal" while not used
  5. ## in the function itself are referenced in the template.
  6. ## When "internal" is true, documentation for non-public headers
  7. ## and sources is also taken as input to Doxygen (see INPUT).
  8. <%namespace import="doxy_base" file="Doxyfile.base"/>
  9. <%def name="gen_doxyfile(libnames, packagename, collection, internal)">
  10. <%
  11. import itertools
  12. import glob
  13. import os
  14. targets = []
  15. docpackage = packagename.replace('+', 'p').lower()
  16. for libname in libnames:
  17. target = None
  18. for p in collection:
  19. if p.name == libname:
  20. target = p
  21. assert(target)
  22. targets.append(target)
  23. srcdoc = []
  24. for dirpath, dirnames, filenames in os.walk('src/%s' % docpackage):
  25. for filename in filenames:
  26. if os.path.splitext(filename)[1] == '.md':
  27. srcdoc.append(os.path.join(dirpath, filename))
  28. version = settings.core_version if packagename=='Core' else settings.cpp_version
  29. doxy_input = ' \\\n'.join(sorted(set(
  30. itertools.chain(
  31. itertools.chain.from_iterable(
  32. target.public_headers +
  33. ([]
  34. if not internal
  35. else target.headers + target.src)
  36. for target in targets),
  37. glob.glob('doc/*.md'),
  38. glob.glob('doc/%s/*.md' % docpackage),
  39. [] if not internal else srcdoc)
  40. )))
  41. %>
  42. ${doxy_base(packagename, version, doxy_input, internal)}
  43. </%def>