Configuration

Format

A configuration file is a free-form ASCII text file with a structure that is similar to that of a Makefile. It is parsed by a recursive-descent parser that is built into doxygen. The file may contain tabs and newlines for formatting purposes. The statements in the file are case-sensitive. Comments may be placed anywhere within the file (except within quotes). Comments begin with the character and end at the end of the line.

The file essentially consists of a list of assignment statements. Each statement consists of a TAG_NAME written in capitals, followed by the = character and one or more values. Values are sequences of non-blanks. If the value should contain one or more blanks it must be surrounded by quotes ("..."). Multiple lines can be concatenated by inserting a backslash (\) as the last character of a line. Environment variables can expanded using the pattern $(ENV_VARIABLE_NAME).

The configuration options can be divided into several categories. Below is a list of tags that are recognized for each category.

General options

PROJECT_NAME
The PROJECT_NAME tag is a single word (or a sequence of words surrounded by double-quotes) that should identify the project for which the documentation is generated. This name is used in the title of most generated pages and in a few other places.

PROJECT_NUMBER
The PROJECT_NUMBER tag can be used to enter a project or revision number. This could be handy for archiving the generated documentation or if some version control system is used.

OUTPUT_DIRECTORY
The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path into which the generated HTML and Latex documentation will be written. If a relative path is entered, it will be relative to the location where doxygen was started. If left blank the current directory will be used.

QUIET
The QUIET tag can be used to turn on/off the messages that are generated to standard output by doxygen. Possible values are YES and NO, where YES implies that the messages are off. If left blank NO is used.

WARNINGS
The WARNINGS tag can be used to turn on/off the warning messages that are generated to standard error by doxygen. Possible values are YES and NO, where YES implies that the warnings are on. If left blank NO is used.

Tip: Turn warnings on while writing the documentation.

DISABLE_INDEX
If you want full control over the layout of the generated HTML pages it might be necessary to disable the index and replace it with your own. The DISABLE_INDEX tag can be used to turn on/off the condensed index at top of each page. A value of NO (the default) enables the index and the value YES disables it.

EXTRACT_ALL
If the EXTRACT_ALL tag is set to YES all classes and functions will be included in the documentation, even if no documentation was available.

Notice: This will also disable the warnings about undocumented members that are normally produced when WARNINGS is set to YES

EXTRACT_PRIVATE
If the EXTRACT_PRIVATE tag is set to YES all documentation for private members will be extracted as well.

HIDE_UNDOC_MEMBERS
If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all undocumented members inside documented classes or files. If set to NO (the default) these members will be included in the various overviews, but no documentation section is generated.

HIDE_UNDOC_CLASSES
If the HIDE_UNDOC_CLASSESS tag is set to YES, Doxygen will hide all undocumented classes. If set to NO (the default) these classes will be included in the various overviews.

BRIEF_MEMBER_DESC
If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will include brief member descriptions after the members that are listed in the file and class documentation (similar to JavaDoc). Set to NO to disable this.

INTERNAL_DOCS
The INTERNAL_DOCS tag determines if documentation that is typed after a \internal command is included. If the tag is set to NO (the default) then the documentation will be excluded. Set it to YES to include the internal documentation.

REPEAT_BRIEF
If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend the brief description of a member or function before the detailed description

Notice:
If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the brief descriptions will be completely suppressed.

FULL_PATH_NAMES
If the FULL_PATH_NAMES tag is set to YES Doxygen will prepend the full path before files name in the file list and in the header files. If set to NO the shortest path that makes the file name unique will be used

STRIP_FROM_PATH
If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag can be used to strip a user defined part of the path. Stripping is only done if the specified string matches the left-hand part of the path.

CLASS_DIAGRAMS
If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will generate a class diagram (in Html and LaTeX) for classes with base or super classes. Setting the tag to NO turns the diagrams off.

CASE_SENSE_NAMES
If the CASE_SENSE_NAMES tag is set to NO (the default) then Doxygen will only generate file names in lower case letters. If set to YES upper case letters are also allowed. This is useful if you have classes or files whose names only differ in case and if your file system supports case sensitive file names.

VERBATIM_HEADERS
If the VERBATIM_HEADERS tag is set the YES (the default) then Doxygen\n"; will generate a verbatim copy of the header file for each class for\n"; which an include is specified. Set to NO to disable this.\n";
See also:
Section \class.

Input related options

INPUT
The INPUT tag is used to specify the files and/or directories that contain documented source files. You may enter file names like myfile.cpp or directories like /usr/src/myproject. Separate the files or directories with spaces.

Notice: This tag (and only this tag) is required.

FILE_PATTERNS
If the value of the INPUT tag contains directories, you can use the FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and *.h ) to filter out the source-files in the directories. If left blank all files are included (i.e. wildcard *).

RECURSIVE
The RECURSIVE tag can be used to specify whether or not subdirectories should be searched for input files as well. Possible values are YES and NO. If left blank NO is used.

EXCLUDE
The EXCLUDE tag can be used to specify files and/or directories that should excluded from the INPUT source files. This way you can easily exclude a subdirectory from a directory tree whose root is specified with the INPUT tag.

EXCLUDE_PATTERNS
If the value of the INPUT tag contains directories, you can use the EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude certain files from those directories.

EXAMPLE_PATH
The EXAMPLE_PATH tag can be used to specify one or more files or directories that contain example code fragments that are included (see the \include command in section \include).

INCLUDE_PATH
The INCLUDE_PATH tag can be used to specify one or more directories that contain include files that are not input files but should be processed by the preprocessor.

INPUT_FILTER
The INPUT_FILTER tag can be used to specify a program that doxygen should invoke to filter for each input file. Doxygen will invoke the filter program by executing (via popen()) the command:
 <filter> <input-file>

where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the name of an input file. Doxygen will then use the output that the filter program writes to standard output.

HTML related options

GENERATE_HTML
If the GENERATE_HTML tag is set to YES (the default) Doxygen will generate HTML output

HTML_OUTPUT
The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a relative path is entered the value of OUTPUT_DIRECTORY will be put in front of it. If left blank `html' will be used as the default path.

HTML_HEADER
The HTML_HEADER tag can be used to specify a user defined HTML header file for each generated HTML page. To get valid HTML the header file should contain at least a <HTML> and a <BODY> tag. Example:
  <HTML>
    <HEAD>
      <TITLE>My title</TITLE>
      <LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
    </HEAD>
    <BODY BGCOLOR="#FFFFFF">
If the tag is left blank doxygen will generate a standard header.

HTML_FOOTER
The HTML_FOOTER tag can be used to specify a user defined HTML footer for each generated HTML page. To get valid HTML the header file should contain at least a </BODY> and a </HTML> tag. Example:
    </BODY>
  </HTML>
If the tag is left blank doxygen will generate a standard footer.

LaTeX related options

GENERATE_LATEX
If the GENERATE_LATEX tag is set to YES (the default) Doxygen will generate Latex output.

LATEX_OUTPUT
The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a relative path is entered the value of OUTPUT_DIRECTORY will be put in front of it. If left blank `latex' will be used as the default path.

COMPACT_LATEX
If the COMPACT_LATEX tag is set to YES Doxygen generates more compact LaTeX documents. This may be useful for small projects and may help to save some trees in general.

PAPER_TYPE
The PAPER_TYPE tag can be used to set the paper type that is used by the printer. Possible values are: If left blank a4wide will be used.

EXTRA_PACKAGES
The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names that should be included in the LaTeX output. To get the times font for instance you can specify
EXTRA_PACKAGES = times
If left blank no extra packages will be included.

Man page related options

GENERATE_MAN
If the GENERATE_MAN tag is set to YES (the default) Doxygen will generate man pages for classes and files.

MAN_OUTPUT
The MAN_OUTPUT tag is used to specify where the man pages will be put. If a relative path is entered the value of OUTPUT_DIRECTORY will be put in front of it. If left blank `man' will be used as the default path. A directory man3 will be created inside the directory specified by MAN_OUTPUT.

MAN_EXTENSION
The MAN_EXTENSION tag determines the extension that is added to the generated man pages (default is the subroutine's section .3)

Preprocessor related options

ENABLE_PREPROCESSING
If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will evaluate all C-preprocessor directives found in the sources and include files.

MACRO_EXPANSION
If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro names in the source code. If set to NO (the default) only conditional compilation will be performed.

SEARCH_INCLUDES
If the SEARCH_INCLUDES tag is set to YES (the default) the includes files in the INCLUDE_PATH (see below) will be search if a #include is found.

INCLUDE_PATH
The INCLUDE_PATH tag can be used to specify one or more directories that contain include files that are not input files but should be processed by the preprocessor.

PREDEFINED
The PREDEFINED tag can be used to specify one or more macro names that are defined before the preprocessor is started (similar to the -D option of gcc). The argument of the tag is a list of macros of the form: name or name=definition (no spaces). If the definition and the = are omitted =1 is assumed.

EXPAND_ONLY_PREDEF
If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then the macro expansion is limited to the macros specified with the PREDEFINED tag.

External reference options

TAGFILES
The TAGFILES tag can be used to specify one or more tagfiles. See section Doxytag usage for more information about the usage of tag files.

Notice:
Each tag file most have a unique name and if a tag file is not located in the directory in which doxygen is run, you must also specify the path to the tagfile here.

GENERATE_TAGFILE
When a file name is specified after GENERATE_TAGFILE, doxygen will create a tag file that is based on the input files it reads. See section Doxytag usage for more information about the usage of tag files.

ALLEXTERNALS
if the ALLEXTERNALS tag is set to YES all external class will be listed in the class index. If set to NO only the inherited external classes will be listed.

PERL_PATH
The PERL_PATH should be the absolute path and name of the perl script interpreter (i.e. the result of `which perl').

Search engine options

SEARCHENGINE
The SEARCHENGINE tag specifies whether or not a search should be used. Possible values are YES and NO. If set to NO or left blank, the values of all other tags in this section will be ignored.

CGI_NAME
The CGI_NAME tag should be the name of the CGI script that starts the search engine (doxysearch) with the correct parameters. A script with this name will be generated by doxygen.

CGI_URL
The CGI_URL tag should be the absolute URL to the directory where the cgi binaries are located. See the documentation of your http daemon for details.

DOC_URL
The DOC_URL tag should be the absolute URL to the directory where the documentation is located. If left blank the absolute path to the documentation, with file:// prepended to it, will be used. This is correct for local viewing only.

DOC_ABSPATH
The DOC_ABSPATH tag should be the absolute path to the directory where the documentation is located. If left blank the directory on the local machine will be used.

BIN_ABSPATH
The BIN_ABSPATH tag must point to the directory where the doxysearch binary is installed.

EXT_DOC_PATHS
The EXT_DOC_PATHS tag can be used to specify one or more paths to documentation generated for other projects. This allows doxysearch to search the documentation for these projects as well. All paths must be absolute.

Examples

Suppose you have a simple project consisting of two files: a source file example.cc and a header file example.h. Then a minimal configuration file is as simple as:

INPUT            = example.cc example.h

Assuming the example makes use of Qt classes and perl is located in /usr/bin, a more realistic configuration file would be:

PROJECT_NAME     = Example
INPUT            = example.cc example.h
WARNINGS         = YES
TAGFILES         = qt.tag
PERL_PATH        = /usr/bin/perl
SEARCHENGINE     = NO

To generate the documentation for the QdbtTabular package I have used the following configuration file:

PROJECT_NAME     = QdbtTabular
OUTPUT_DIRECTORY = html
WARNINGS         = YES
INPUT            = examples/examples.doc src
FILE_PATTERNS    = *.cc *.h
INCLUDE_PATH     = examples
TAGFILES         = qt.tag
PERL_PATH        = /usr/local/bin/perl
SEARCHENGINE     = YES
CGI_NAME         = search.cgi
CGI_URL          = http://www.stack.nl/~dimitri/cgi-bin
DOC_URL          = http://www.stack.nl/~dimitri/qdbttabular
DOC_ABSPATH      = /home/dimitri/.html/qdbttabular
BIN_ABSPATH      = /home/dimitri/bin

To regenerate the Qt documentation from the sources, you could use the following config file:

PROJECT_NAME         = Qt
OUTPUT_DIRECTORY     = qt_docs
HIDE_UNDOC_MEMBERS   = YES
HIDE_UNDOC_CLASSES   = YES
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION      = YES
EXPAND_ONLY_PREDEF   = YES
SEARCH_INCLUDES      = YES
FULL_PATH_NAMES      = YES
STRIP_FROM_PATH      = $(QTDIR)/
PREDEFINED           = USE_TEMPLATECLASS Q_EXPORT= \
                       QArrayT=QArray \
                       QListT=QList \
                       QDictT=QDict \
                       QQueueT=QQueue \
                       QVectorT=QVector \
                       QPtrDictT=QPtrDict \
                       QIntDictT=QIntDict \
                       QStackT=QStack \
                       QDictIteratorT=QDictIterator \
                       QListIteratorT=QListIterator \
                       QCacheT=QCache \
                       QCacheIteratorT=QCacheIterator \
                       QIntCacheT=QIntCache \
                       QIntCacheIteratorT=QIntCacheIterator \
                       QIntDictIteratorT=QIntDictIterator \
                       QPtrDictIteratorT=QPtrDictIterator
INPUT                = $(QTDIR)/doc \
                       $(QTDIR)/src/widgets \
                       $(QTDIR)/src/kernel \
                       $(QTDIR)/src/dialogs \
                       $(QTDIR)/src/tools
FILE_PATTERNS        = *.cpp *.h q*.doc
INCLUDE_PATH         = $(QTDIR)/include 
RECURSIVE            = YES

Here Doxygen's preprocessor is used to substitute some macro names that are normally substituted by the C preprocessor, but without doing full macro expansion.


Generated at Thu Sep 2 10:59:31 1999 by doxygen  written by Dimitri van Heesch, © 1997-1999