/******************************************************************************
*
*
*
* Copyright (C) 1997-2008 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.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
/*! \page faq Frequently Asked Questions
How to get information on the index page in HTML?
You should use the \\mainpage command inside a comment block like this:
\verbatim
/*! \mainpage My Personal Index Page
*
* \section intro_sec Introduction
*
* This is the introduction.
*
* \section install_sec Installation
*
* \subsection step1 Step 1: Opening the box
*
* etc...
*/
\endverbatim
Help, some/all of the members of my class / file / namespace
are not documented?
Check the following:
Is your class / file / namespace documented? If not, it will not
be extracted from the sources unless \c EXTRACT_ALL is set to \c YES
in the config file.
Are the members private? If so, you must set \c EXTRACT_PRIVATE to \c YES
to make them appear in the documentation.
Is there a function macro in your class that does not end with a
semicolon (e.g. MY_MACRO())? If so then you have to instruct
doxygen's preprocessor to remove it.
This typically boils down to the following settings in the config file:
\verbatim
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = MY_MACRO()=
\endverbatim
Please read the \ref preprocessing "preprocessing" section of the
manual for more information.
When I set EXTRACT_ALL to NO none of my functions are shown in the
documentation.
In order for global functions, variables, enums, typedefs, and defines
to be documented you should document the file in which these commands are
located using a comment block containing a \\file (or \@file)
command.
Alternatively, you can put all members in a group (or module)
using the \\ingroup command and then document the group using a comment
block containing the \\defgroup command.
For member functions or functions that are part of a namespace you should
document either the class or namespace.
How can I make doxygen ignore some code fragment?
The new and easiest way is to add one comment block
with a \ref cmdcond "\\cond" command at the start and one comment block
with a \ref cmdendcond "\\endcond" command at the end of the piece of
code that should be ignored. This should be within the same file of course.
But you can also use Doxygen's preprocessor for this:
If you put
\verbatim
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/* code that must be skipped by Doxygen */
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
\endverbatim
around the blocks that should be hidden and put:
\verbatim
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
\endverbatim
in the config file then all blocks should be skipped by Doxygen as long
as PREPROCESSING = YES.
How can I change what is after the \#include in the class documentation?
In most cases you can use STRIP_FROM_INC_PATH to strip a user defined
part of a path.
You can also document your class as follows
\verbatim
/*! \class MyClassName include.h path/include.h
*
* Docs for MyClassName
*/
\endverbatim
To make doxygen put
\#include \
in the documentation of the class MyClassName regardless of the name of the actual
header file in which the definition of MyClassName is contained.
If you want doxygen to show that the include file should be included using
quotes instead of angle brackets you should type:
\verbatim
/*! \class MyClassName myhdr.h "path/myhdr.h"
*
* Docs for MyClassName
*/
\endverbatim
Can I configure doxygen from the command line?
Not via command line options, but doxygen can read from stdin,
so you can pipe things through it. Here's an example how to override an option
in a configuration file from the command line (assuming a unix environment):
\verbatim
( cat Doxyfile ; echo "PROJECT_NUMBER=1.0" ) | doxygen -
\endverbatim
If multiple options with the same name are specified then doxygen will use
the last one. To append to an existing option you can use the += operator.
How did doxygen get its name?
Doxygen got its name from playing with the words
documentation and generator.
\verbatim
documentation -> docs -> dox
generator -> gen
\endverbatim
At the time I was looking into lex and yacc, where a lot of things start with
"yy", so the "y" slipped in and made things pronounceable
(the proper pronouncement is Docs-ee-gen, so with a long "e").
What was the reason to develop doxygen?
I once wrote a GUI widget based on the Qt library (it is still available at
http://qdbttabular.sourceforge.net/ and maintained by Sven Meyer).
Qt had nicely generated documentation (using an internal tool which
they didn't want to release) and I wrote similar docs by hand.
This was a nightmare to maintain, so I wanted a similar tool. I looked at
Doc++ but that just wasn't good enough (it didn't support signals and
slots and did not have the Qt look and feel I had grown to like),
so I started to write my own tool...
\htmlonly
Go to the next section or return to the
index.
\endhtmlonly
*/