Boost logo

Boost :

From: Julio M. Merino Vidal (jmmv84_at_[hidden])
Date: 2007-04-02 18:10:41


I'm currently having trouble with the conversion between the XML
generated by Doxygen and the Boostbook code generated by

Some of my files define free functions and types inside a namespace
(or at the top level; the problem appears equally). However, when
these files are converted to Boostbook and later turned into HTML, I
cannot see any of these functions. I can only see those classes that
appear in the same file, but nothing else. The problem is because
the code is skipping such cases.

Additionally, Doxygen seems to be generating duplicate entries for
some members, and I don't know why it's happening (a bug?). For
example, if you document some #defines in a file, the resulting
Boostbook will contain two entries for each #define, which is
incorrect because 1) there are duplicate IDs, 2) the rendered
document contains two entries. (This also happens with the free
functions mentioned above, once they are fixed.)

At last, Doxygen is also generating sectiondef's elements with an
empty kind, which are also unhandled by the current code.

I'm using Doxygen 1.5.1 under Mac OS X and Boost from CVS HEAD. The
problems can easily be seen when building the Boost.Process'
documentation that is currently in the SVN repository and later
inspecting the synopsis of each header file in the Reference
chapter. For example, note how "operations.hpp" is completely empty,
or how "config.hpp" contains duplicates for all macros.

The attached patch resolves these issues for me, but I'm not sure it
is correct. Specially, the new sectiondef template in toplevel mode
is needed to avoid the duplicates in the #defines' synopsis... but
maybe it'd be avoided in some other way.

Feel free to modify it to correct any obvious mistake, but please
resolve the conversion issue :-)


PS: Is this Doxygen->Boostbook conversion experimental? Support for
several things seem to be missing...

Julio M. Merino Vidal <jmmv84_at_[hidden]>

Boost list run by bdawes at, gregod at, cpdaniel at, john at