diff options
Diffstat (limited to 'doc/config.doc')
-rw-r--r-- | doc/config.doc | 553 |
1 files changed, 553 insertions, 0 deletions
diff --git a/doc/config.doc b/doc/config.doc new file mode 100644 index 0000000..0412634 --- /dev/null +++ b/doc/config.doc @@ -0,0 +1,553 @@ +/****************************************************************************** + * + * $Id$ + * + * Copyright (C) 1997-1999 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * All output generated with Doxygen is not covered by this license. + * + */ +/*! \page config + +\section config Configuration + +\subsection config_format 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 \c 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 \c # character and end at the end of the +line. + +The file essentially consists of a list of assignment statements. +Each statement consists of a \c TAG_NAME written in capitals, +followed by the \c = 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. + +\subsection config_general General options +<dl> + +<dt>\c PROJECT_NAME <dd> + \addindex PROJECT_NAME + The \c 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. + +<dt>\c PROJECT_NUMBER <dd> + \addindex PROJECT_NUMBER + The \c 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. + +<dt>\c OUTPUT_DIRECTORY <dd> + \addindex OUTPUT_DIRECTORY + The \c 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. + +<dt>\c QUIET <dd> + \addindex QUIET + The \c QUIET tag can be used to turn on/off the messages that are generated + to standard output by doxygen. Possible values are \c YES and \c NO, + where \c YES implies that the messages are off. + If left blank \c NO is used. + +<dt>\c WARNINGS <dd> + \addindex WARNINGS + The \c WARNINGS tag can be used to turn on/off the warning messages that are + generated to standard error by doxygen. Possible values are \c YES and \c NO, + where \c YES implies that the warnings are on. If left blank \c NO is used. + + \b Tip: Turn warnings on while writing the documentation. + +<dt>\c DISABLE_INDEX <dd> + \addindex 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. + +<dt>\c EXTRACT_ALL <dd> + \addindex EXTRACT_ALL + If the \c EXTRACT_ALL tag is set to \c YES all classes and functions will be + included in the documentation, even if no documentation was available. + + \b Notice: This will also disable the warnings about undocumented members + that are normally produced when \c WARNINGS is set to \c YES + +<dt>\c EXTRACT_PRIVATE <dd> + \addindex EXTRACT_PRIVATE + If the \c EXTRACT_PRIVATE tag is set to \c YES all + documentation for private members will be extracted as well. + +<dt>\c HIDE_UNDOC_MEMBERS <dd> + \addindex HIDE_UNDOC_MEMBERS + If the \c HIDE_UNDOC_MEMBERS tag is set to \c YES, Doxygen will hide all + undocumented members inside documented classes or files. + If set to \c NO (the default) these members will be included in the + various overviews, but no documentation section is generated. + +<dt>\c HIDE_UNDOC_CLASSES <dd> + \addindex HIDE_UNDOC_CLASSES + If the \c HIDE_UNDOC_CLASSESS tag is set to \c YES, Doxygen will hide all + undocumented classes. + If set to \c NO (the default) these classes will be included in the + various overviews. + +<dt>\c BRIEF_MEMBER_DESC <dd> + \addindex BRIEF_MEMBER_DESC + If the \c BRIEF_MEMBER_DESC tag is set to \c 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. + +<dt>\c INTERNAL_DOCS <dd> + \addindex INTERNAL_DOCS + The \c INTERNAL_DOCS tag determines if documentation + that is typed after a \\internal command is included. If the tag is set + to \c NO (the default) then the documentation will be excluded. + Set it to \c YES to include the internal documentation. + +<dt>\c REPEAT_BRIEF <dd> + \addindex REPEAT_BRIEF + If the \c REPEAT_BRIEF tag is set to \c YES (the default) Doxygen will + prepend the brief description of a member or function before the detailed + description + + \par Notice: + If both \c HIDE_UNDOC_MEMBERS and \c BRIEF_MEMBER_DESC are set to \c NO, the + brief descriptions will be completely suppressed. + +<dt>\c FULL_PATH_NAMES <dd> + \addindex FULL_PATH_NAMES + If the \c FULL_PATH_NAMES tag is set to \c 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 + +<dt>\c STRIP_FROM_PATH <dd> + \addindex STRIP_FROM_PATH + If the \c FULL_PATH_NAMES tag is set to \c YES then the \c 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. + +<dt>\c CLASS_DIAGRAMS <dd> + \addindex CLASS_DIAGRAMS + If the \c CLASS_DIAGRAMS tag is set to \c YES (the default) Doxygen will + generate a class diagram (in Html and LaTeX) for classes with base or + super classes. Setting the tag to \c NO turns the diagrams off. + +<dt>\c CASE_SENSE_NAMES <dd> + \addindex CASE_SENSE_NAMES + If the \c CASE_SENSE_NAMES tag is set to \c NO (the default) then Doxygen + will only generate file names in lower case letters. If set to + \c 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. + +<dt>\c VERBATIM_HEADERS <dd> + \addindex 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"; + \sa Section \ref cmdclass. + +</dl> + +\subsection config_input Input related options +<dl> + +<dt>\c INPUT <dd> + \addindex INPUT + The \c INPUT tag is used to specify the files and/or directories that contain + documented source files. You may enter file names like + \c myfile.cpp or directories like \c /usr/src/myproject. + Separate the files or directories with spaces.<br> + + \b Notice: This tag (and only this tag) is \e required. + +<dt>\c FILE_PATTERNS <dd> + \addindex FILE_PATTERNS + If the value of the \c INPUT tag contains directories, you can use the + \c FILE_PATTERNS tag to specify one or more wildcard patterns + (like \c *.cpp and \c *.h ) to filter out the source-files + in the directories. If left blank all files are included + (i.e. wildcard <tt>*</tt>). + +<dt>\c RECURSIVE <dd> + \addindex RECURSIVE + The \c RECURSIVE tag can be used to specify whether or not subdirectories + should be searched for input files as well. Possible values are \c YES + and \c NO. If left blank \c NO is used. + +<dt>\c EXCLUDE <dd> + \addindex EXCLUDE + The \c EXCLUDE tag can be used to specify files and/or directories that should + excluded from the \c INPUT source files. This way you can easily exclude a + subdirectory from a directory tree whose root is specified with the \c INPUT tag. + +<dt>\c EXCLUDE_PATTERNS <dd> + \addindex EXCLUDE_PATTERNS + If the value of the INPUT tag contains directories, you can use the + \c EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude + certain files from those directories. + + +<dt>\c EXAMPLE_PATH <dd> + \addindex EXAMPLE_PATH + The \c 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 \ref cmdinclude). + +<dt>\c INCLUDE_PATH <dd> + \addindex 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. + +<dt>\c INPUT_FILTER <dd> + \addindex INPUT_FILTER + The \c 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: +\verbatim <filter> <input-file> +\endverbatim + + where \<filter\> + is the value of the \c 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. + +</dl> + +\subsection html_output HTML related options +<dl> + +<dt>\c GENERATE_HTML <dd> + \addindex GENERATE_HTML + If the \c GENERATE_HTML tag is set to \c YES (the default) Doxygen will + generate HTML output + +<dt>\c HTML_OUTPUT <dd> + \addindex HTML_OUTPUT + The \c HTML_OUTPUT tag is used to specify where the HTML docs will be put. + If a relative path is entered the value of \c OUTPUT_DIRECTORY will be + put in front of it. If left blank `html' will be used as the default path. + +<dt>\c HTML_HEADER <dd> + \addindex HTML_HEADER + The \c 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 \c <HTML> and a \c <BODY> tag. Example: +\verbatim + <HTML> + <HEAD> + <TITLE>My title</TITLE> + </HEAD> + <BODY BGCOLOR="#FFFFFF"> +\endverbatim + If the tag is left blank doxygen will generate a + standard header. + +<dt>\c HTML_FOOTER <dd> + \addindex HTML_FOOTER + The \c 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 \c </BODY> and a \c </HTML> tag. Example: +\verbatim + </BODY> + </HTML> +\endverbatim + If the tag is left blank doxygen will generate a standard footer. + +</dl> + +\subsection latex_output LaTeX related options +<dl> + +<dt>\c GENERATE_LATEX <dd> + \addindex GENERATE_LATEX + If the \c GENERATE_LATEX tag is set to \c YES (the default) Doxygen will + generate Latex output. + +<dt>\c LATEX_OUTPUT <dd> + \addindex LATEX_OUTPUT + The \c LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. + If a relative path is entered the value of \c OUTPUT_DIRECTORY will be + put in front of it. If left blank `latex' will be used as the default path. + +<dt>\c COMPACT_LATEX <dd> + \addindex COMPACT_LATEX + If the \c COMPACT_LATEX tag is set to \c YES Doxygen generates more compact + LaTeX documents. This may be useful for small projects and may help to + save some trees in general. + +<dt>\c PAPER_TYPE <dd> + \addindex PAPER_TYPE + The PAPER_TYPE tag can be used to set the paper type that is used + by the printer. Possible values are: + <ul> + <li><code>a4</code> (210 x 297 mm). + <li><code>a4wide</code> (same as a4, but including the a4wide package). + <li><code>letter</code> (8.5 x 11 inches). + <li><code>legal</code> (8.5 x 14 inches). + <li><code>executive</code> (7.25 x 10.5 inches) + </ul> + If left blank a4wide will be used. + +<dt>\c EXTRA_PACKAGES <dd> + \addindex 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 +\verbatim +EXTRA_PACKAGES = times +\endverbatim + If left blank no extra packages will be included. +</dl> + +\subsection man_output Man page related options +<dl> + +<dt>\c GENERATE_MAN <dd> + \addindex GENERATE_MAN + If the \c GENERATE_MAN tag is set to \c YES (the default) Doxygen will + generate man pages for classes and files. + +<dt>\c MAN_OUTPUT <dd> + \addindex MAN_OUTPUT + The \c MAN_OUTPUT tag is used to specify where the man pages will be put. + If a relative path is entered the value of \c 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 + \c MAN_OUTPUT. + +</dl> + +\subsection config_prepro Preprocessor related options +<dl> + +<dt>\c ENABLE_PREPROCESSING <dd> + \addindex ENABLE_PREPROCESSING + If the \c ENABLE_PREPROCESSING tag is set to \c YES (the default) Doxygen will + evaluate all C-preprocessor directives found in the sources and include + files. + +<dt>\c MACRO_EXPANSION <dd> + \addindex MACRO_EXPANSION + If the \c MACRO_EXPANSION tag is set to \c YES Doxygen will expand all macro + names in the source code. If set to \c NO (the default) only conditional + compilation will be performed. + +<dt>\c SEARCH_INCLUDES <dd> + \addindex SEARCH_INCLUDES + If the \c SEARCH_INCLUDES tag is set to \c YES (the default) the includes files + in the \c INCLUDE_PATH (see below) will be search if a \#include is found. + +<dt>\c INCLUDE_PATH <dd> + \addindex INCLUDE_PATH + The \c 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. + +<dt>\c PREDEFINED <dd> + \addindex PREDEFINED + The \c 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: + <code>name</code> or <code>name=definition</code> (no spaces). + If the definition and the = are omitted =1 is assumed. + +<dt>\c EXPAND_ONLY_PREDEF <dd> + \addindex EXPAND_ONLY_PREDEF + If the \c EXPAND_ONLY_PREDEF and \c MACRO_EXPANSION tags are both set to YES + then the macro expansion is limited to the macros specified with the + \c PREDEFINED tag. + +</dl> + +\subsection config_extref External reference options +<dl> + +<dt>\c TAGFILES <dd> + \addindex TAGFILES + The \c TAGFILES tag can be used to specify one or more tagfiles. + See section \ref doxytag_usage for more information about the usage of + tag files. + + \par 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. + +<dt>\c GENERATE_TAGFILE <dd> + \addindex GENERATE_TAGFILE + When a file name is specified after \c GENERATE_TAGFILE, doxygen will create + a tag file that is based on the input files it reads. + See section \ref doxytag_usage for more information about the usage of + tag files. + +<dt>\c ALLEXTERNALS <dd> + \addindex ALLEXTERNALS + if the \c ALLEXTERNALS tag is set to \c YES all external class will be listed + in the class index. If set to \c NO only the inherited external classes + will be listed. + +<dt>\c PERL_PATH <dd> + \addindex PERL_PATH + The \c PERL_PATH should be the absolute path and name of the perl script + interpreter (i.e. the result of `<tt>which perl</tt>'). + +</dl> +\subsection config_search Search engine options +<dl> + +<dt>\c SEARCHENGINE <dd> + \addindex SEARCHENGINE + The \c SEARCHENGINE tag specifies whether or not a + search should be used. Possible values are \c YES and \c NO. + If set to \c NO or left blank, the values of all other tags in this section + will be ignored. + +<dt>\c CGI_NAME <dd> + \addindex CGI_NAME + The \c CGI_NAME tag should be the name of the CGI script that + starts the search engine (<tt>doxysearch</tt>) with the correct parameters. + A script with this name will be generated by doxygen. + +<dt>\c CGI_URL <dd> + \addindex CGI_URL + The \c 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. + +<dt>\c DOC_URL <dd> + \addindex DOC_URL + The \c 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 <tt>file://</tt> prepended to it, will be used. + This is correct for local viewing only. + +<dt>\c DOC_ABSPATH <dd> + \addindex DOC_ABSPATH + The \c 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. + +<dt>\c BIN_ABSPATH <dd> + \addindex BIN_ABSPATH + The \c BIN_ABSPATH tag must point to the directory where the doxysearch binary + is installed. + +<dt>\c EXT_DOC_PATHS <dd> + \addindex EXT_DOC_PATHS + The \c 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. + +</dl> +<h2>Examples</h2> + +Suppose you have a simple project consisting of two files: a source file +\c example.cc and a header file \c example.h. +Then a minimal configuration file is as simple as: +\verbatim +INPUT = example.cc example.h +\endverbatim + +Assuming the example makes use of Qt classes and perl is located +in <code>/usr/bin</code>, a more realistic configuration file would be: +\verbatim +PROJECT_NAME = Example +INPUT = example.cc example.h +WARNINGS = YES +TAGFILES = qt.tag +PERL_PATH = /usr/bin/perl +SEARCHENGINE = NO +\endverbatim + +To generate the documentation for the +<a href="http://www.stack.nl/~dimitri/qdbttabular/index.html">QdbtTabular</a> package +I have used the following configuration file: +\verbatim +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 +\endverbatim + +To regenerate the Qt documentation from the sources, you could use the +following config file: +\verbatim +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 +\endverbatim + +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. + +*/ + |