I need some basic help using Doxygen on C code. All basic docs are coming out fine, and I want help structuring the big long long list of files and functions.
I have a C source tree which looks like this:
src/
+--util/
+--file1.h
+--file1.c
+--file2.h
+--file2.c
+--stats/
+--file3.h
+--etc/
Very standard. Currently doxygen generates a flat file list of all files. We refer to each dub-dir of src/ as a 'module', and so documenting this seems like a nice fit for Doxygen modules/groups.
How exactly should I use the grouping commands to mirror the directory structure above? I want to have a module util in the generated docs which links to the file1 and file2 docs. Exactly like JavaDoc would treat a package.
Adding the /addtogroup util & @{ tags to each header file generated a mini-site with a flattened list of all data-structures etc within all the headers, which isn't what I expected or wanted. Perhaps this is what doxygen groups are supposed to do though, ie, document an API uniformly when the code is implemented across multiple files?
A simpler option to using modules is to use
@page
and@subpage
. To get something similar to your described layout you could use the following:These comments can of course be contained in one file or many. Typically I'd put the
@page file1
in file1.h,@page file2
in file2.h, etc, and the@subpage
comments in a more top-level header or main source file.