[PPL-devel] Devref documentation.
Enea Zaffanella
zaffanella.enea at tiscali.it
Sat Mar 9 17:47:27 CET 2002
I just started having a look at the various warnings issued by doxygen
when we compile the devref manual, in order to see if they are due to
doxygen bugs or to our rather shallow understanding of this
documentation tool: I strongly believe that we have a mix of the two
situations.
I will try and produce a few bug reports to be sent to the doxygen
mailing list ... but here I would like point out a few (possible)
problems taht are our fault.
1) Upgrading the doxygen configuration files.
Whenever we move to a newer doxygen release, we should upgrade ALL of
our doxygen configuration files by issuing commands like:
# doxygen -u <config-file>
This will save the old config file in <config-file>.bak and produce a
new configuration file, including all the settings of the old one and
the default values for those config variables that were not used in the
previous release. Now, I am (we are?) using doxygen 1.2.14, but the
configuration files in the repository have been produced by using
doxygen 1.2.6, which is an old release.
The annoying problems when using doxygen -u are:
- our comments in the config. files will be stripped out and replaced by
the standard comments (minor problem);
- by making a diff, I noted that the automatically generated new config
files have a lot of trailing white spaces (as well as a few lines that
are too long).
2) Multiple detailed description blocks.
As far as I can see, doxygen is not able to collect and merge togheter
multiple description blocks. It will consider just one of them (th elast
one, I guess). Usually, we have been careful to avoid such a situation,
except when we wanted to include a particular (non-friend) function in
the documentation of a class by using the special command \relates
<class>. Since this command seems not to work properly with brief
description, we were writing two detail description blocks, one just
after the brief description (which was including the \relates command
and nothing else) and one before the actual function definition (without
the \relates command). The net result was the doxygen warning:
Warning: no matching file member found for ...
Because (when processing the second comment block) doxygen was not able
to find a matching declaration (he had no \relates and it was therefore
looking in the wrong place). The solution is to place the \relates
command in the (one and only) detailed description block that goes
before the function _definition_.
3) The use of the flag PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
We were using this flag without any need a couple of times (in Row.cc
and SatRow.cc). Basically, this flag should never be used in
*.inlines.hh and *.cc files, since all the member functions (and the
functions labelled by \related) of an undocumented class will NOT appear
in the user manual.
Now going on checking if there are other kinds of doxygen warnings.
I will also start to implement some of the above changes.
Enea.
More information about the PPL-devel
mailing list