Eric, Thanks for the info. The process appears easier than I thought it would be. I agree that it is unfortunate you have to hard-code the standard path. Since the path is only necessary to resolve standard headers and you do not need to produce documentation on those headers, do you really need wave to be able to find the standard headers? Is the path required to prevent warnings? Would it be possible to put the standard header include statements inside an ifndef BOOST_PROTO_DOXYGEN_INVOKED block? I am sure that I do not fully understand the problem. Either way, I appreciate the description of the process. Now I am off to build wave ... Thanks, Justin On Friday 25 May 2007 12:02, Eric Niebler wrote:
KSpam wrote:
Finally, Doxygen documentation is impossible to do in code generated with BOOST_PP. This is the only "real" issue as far as I am concerned. I wonder if there is a way to get that working with the help of wave.
There is. I use wave as a Doxygen filter when generating the docs for proto. The relevant parts of the Jamfile look like:
wave-command = [ path.native ../../../../dist/bin/wave ] ;
# Generate reference section using Doxygen doxygen protodoc
[ glob ../../../../boost/xpressive/proto/*.hpp ]
doxygen:paramEXTRACT_ALL=YES doxygen:paramHIDE_UNDOC_MEMBERS=NO # Use Boost.Wave to preprocess Proto's source doxygen:param"INPUT_FILTER=\"$(wave-command) \\ -S ../../../.. \\ -S \\\"C:\\Program Files\\Microsoft Visual Studio .NET 2003\\vc7\\include\\\" \\ -D _WIN32 \\ -D BOOST_PROTO_DOXYGEN_INVOKED \\ -p 1 \"" # This ensures that Wave is actually built before we try to execute it <dependency>../../../../tools/wave/build release ;
xml proto
proto.qbk ;
boostbook standalone
proto
xsl:paramtoc.max.depth=3 xsl:paramtoc.section.depth=3 xsl:paramchunk.section.depth=3 <dependency>protodoc ;
This lives in CVS head at libs/xpressive/proto/doc/Jamfile.v2. Sadly, I've had to hard-code the standard include path. I don't know any other way.