Tuesday, December 01, 2009

doxygen weirdness

Spent most of my day getting Doxygen working with Visual Studio 2008. Finally happy with the output after lots of fiddling and trial-and-error. Now my API documentation is getting generated every time I do a build (and tested with UnitTest++).

Some oddities I had to deal with:
  • doxygen doesn't report an error if you've got \msc in your docs, just silently puts a invalid image reference into the HTML. Doesn't seem to actually try to do anything with the \msc command unless you set MSCGEN_PATH
  • I've got doxygen/dot/mscgen checked-in to subversion relative to my project's source code. Running doxygen from a Visual Studio post-build step, and decided to wrap it with a batch script. At least on windows, doxygen seems to have trouble reading an environment variable to set DOT_PATH / MSCGEN_PATH. Seems like it expands the env variable just fine, but it reports an error saying it can't find dot. Ended up just putting the relative path into the config file. Annoying since now I can't share the config file w/ multiple projects at different levels of the tree... but hey, free-ish UML sequence diagrams via mscgen.
  • If I enable HAVE_DOT, lots of unhelpful error messages whenever it tries to run dot. A little googling turned up the problem -- doxygen tries to avoid re-doing some work if it thinks it doesn't have to regenerate some files. Not sure why it isn't working, but you can work-around the problem by creating a pre-build step that deletes the document-output directory.
When I wasn't messing with Doxygen, I was waiting in line at the DMV to renew my driver's license. Whee.

Monday, November 30, 2009

mingw vs. cygwin -- mingw fail

Cygwin has its warts. But, at least it has a single installer.

There's documentation on the MinGW site with install instructions. Many, many pages w/ seemingly contradictory information. And then you've got to navigate SourceForge's horrible file download interface. Ick.