Better automated Doxygen documentation checker
authorTeemu Murtola <teemu.murtola@gmail.com>
Mon, 3 Mar 2014 19:06:37 +0000 (21:06 +0200)
committerTeemu Murtola <teemu.murtola@gmail.com>
Thu, 27 Mar 2014 18:04:49 +0000 (20:04 +0200)
commit8417f288ab412c1fffe780717621330d81bbcd19
treeb3b336182af91b2e1e1803ffe7e509125e917272
parent3327fa993dba5cd9d07f3804ae3b017eb88bea17
Better automated Doxygen documentation checker

Add a completely rewritten checker to replace 'make doccheck'.
This is based on first generating and then parsing the Doxygen XML
output.  It is somewhat slower than the old approach, but more robust
(exact format of the comments no longer matters) and allows relatively
easily checking all the documentation.  As a side effect, the XML
extraction also makes Doxygen parse those comments that appear in
undocumented files, so that at least syntax errors in them can be
spotted from warnings (the checker can also check them otherwise, and
even warn about them getting ignored).

The new check can be run with 'make doc-check'.  Not all functionality
from the old checker is available; documentation of the new checks in
doxygen.md follows when that is done, as well as some additional cleanup
of the code.

Currently, the new checker produces some warnings, which are suppressed
using suppressions.txt.

Short-term, this could be used to check for most common issues like
missing brief descriptions.

Medium-term, we could implement our own logic for enforcing what needs
to be documented, and disable all Doxygen-provided warnings about
undocumented members (by turning HIDE_UNDOC_MEMBERS=ON).  This would
remove the need for most \cond directives.

Long-term, we could even consider generating some extra member listings
or such from the XML output, and/or use it to patch the HTML pages
generated by Doxygen such that they would be more useful for our uses.

Change-Id: I25262b28699e10547e2116a50d3a9d8d5aa966a6
12 files changed:
doxygen/CMakeLists.txt
doxygen/Doxyfile-full.cmakein
doxygen/Doxyfile-lib.cmakein
doxygen/Doxyfile-user.cmakein
doxygen/Doxyfile-xml.cmakein [new file with mode: 0644]
doxygen/doxygen-check.py [new file with mode: 0755]
doxygen/doxygen.md
doxygen/doxygenxml.py [new file with mode: 0755]
doxygen/getInstalledHeaders.cmake [new file with mode: 0644]
doxygen/gmxtree.py [new file with mode: 0644]
doxygen/reporter.py [new file with mode: 0644]
doxygen/suppressions.txt [new file with mode: 0644]