Commit 92a0f3fc authored by dimitri's avatar dimitri

Release-1.8.3.1-20130324

parent f1d6ab7c
# Doxyfile 1.8.0
# Doxyfile 1.8.3.1
#---------------------------------------------------------------------------
# Project related configuration options
......@@ -34,6 +34,7 @@ OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
......@@ -100,7 +101,7 @@ INPUT = src
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.h \
*.cpp \
*.md
*.md
RECURSIVE = NO
EXCLUDE = src/code.cpp \
src/ce_lex.cpp \
......@@ -115,8 +116,6 @@ EXCLUDE = src/code.cpp \
src/logos.cpp \
src/suffixtree.cpp \
src/suffixtree.h \
src/searchindex.cpp \
src/searchindex.h \
src/commentcnv.cpp \
src/commentscan.cpp \
src/pycode.cpp \
......@@ -128,7 +127,7 @@ EXCLUDE = src/code.cpp \
src/vhdlparser.cpp \
src/vhdlcode.cpp \
src/tclscanner.cpp \
src/lodepng.cpp \
src/lodepng.cpp \
src/doxygen_css.h \
src/doxygen_js.h \
src/doxygen_php.h \
......@@ -147,9 +146,14 @@ EXCLUDE = src/code.cpp \
src/search_functions_php.h \
src/search_opensearch_php.h \
src/search_js.h \
src/sizzle_js.h
src/sizzle_js.h \
src/navtree_js.h \
src/resize_js.h \
src/svgpan_js.h \
src/dynsections_js.h \
src/extsearch_js.h \
src/footer_html.h \
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
......@@ -159,6 +163,7 @@ INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE =
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
......@@ -170,6 +175,8 @@ REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
CLANG_ASSISTED_PARSING = YES
CLANG_OPTIONS =
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
......@@ -185,12 +192,14 @@ HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_FILES =
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = YES
HTML_DYNAMIC_SECTIONS = YES
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = YES
DOCSET_FEEDNAME = "Doxygen docs"
DOCSET_BUNDLE_ID = org.doxygen.Doxygen
......@@ -221,10 +230,16 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
USE_MATHJAX = NO
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
MATHJAX_EXTENSIONS =
SEARCHENGINE = YES
SERVER_BASED_SEARCH = YES
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
......@@ -237,6 +252,7 @@ PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
LATEX_FOOTER =
LATEX_EXTRA_FILES =
PDF_HYPERLINKS = YES
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
......@@ -268,6 +284,11 @@ XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
......@@ -285,7 +306,7 @@ ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_PATH = qtools libmd5
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
......@@ -297,6 +318,7 @@ TAGFILES = qtools_docs/qtools.tag=../../qtools_docs/html
GENERATE_TAGFILE = doxygen.tag
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
......
DOXYGEN Version 1.8.3.1-20130209
DOXYGEN Version 1.8.3.1-20130324
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (09 February 2013)
Dimitri van Heesch (24 March 2013)
......@@ -45,7 +45,7 @@ distclean: clean
-rm -f Makefile qtools/Makefile src/Makefile examples/Makefile doc/Makefile
-rm -f .makeconfig .tmakeconfig
-rm -f src/doxygen.pro src/libdoxygen.pro qtools/qtools.pro src/libdoxycfg.pro libmd5/libmd5.pro
-rm -f src/version.cpp
-rm -f src/version.cpp
-rm -r addon/doxywizard/Makefile
-rm -f addon/doxywizard/doxywizard.pro
-rm -f VERSION
......
DOXYGEN Version 1.8.3.1_20130209
DOXYGEN Version 1.8.3.1_20130324
Please read INSTALL for compilation instructions.
......@@ -26,4 +26,4 @@ forum.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (09 February 2013)
Dimitri van Heesch (dimitri@stack.nl) (24 March 2013)
......@@ -8,6 +8,7 @@
#include <QtXml>
#include "config.h"
#include "version.h"
#include "../../src/settings.h"
#undef SA
#define SA(x) QString::fromAscii(x)
......@@ -120,144 +121,148 @@ QWidget *Expert::createTopicWidget(QDomElement &elem)
int row=0;
while (!child.isNull())
{
QString type = child.attribute(SA("type"));
if (type==SA("bool"))
QString setting = child.attribute(SA("setting"));
if (setting.isEmpty() || IS_SUPPORTED(setting.toAscii()))
{
InputBool *boolOption =
QString type = child.attribute(SA("type"));
if (type==SA("bool"))
{
InputBool *boolOption =
new InputBool(
layout,row,
layout,row,
child.attribute(SA("id")),
child.attribute(SA("defval"))==SA("1"),
child.attribute(SA("docs"))
);
m_options.insert(
child.attribute(SA("id")),
child.attribute(SA("defval"))==SA("1"),
child.attribute(SA("docs"))
);
m_options.insert(
child.attribute(SA("id")),
boolOption
);
connect(boolOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(boolOption,SIGNAL(changed()),SIGNAL(changed()));
}
else if (type==SA("string"))
{
InputString::StringMode mode;
QString format = child.attribute(SA("format"));
if (format==SA("dir"))
{
mode = InputString::StringDir;
}
else if (format==SA("file"))
{
mode = InputString::StringFile;
boolOption
);
connect(boolOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(boolOption,SIGNAL(changed()),SIGNAL(changed()));
}
else // format=="string"
else if (type==SA("string"))
{
mode = InputString::StringFree;
}
InputString *stringOption =
InputString::StringMode mode;
QString format = child.attribute(SA("format"));
if (format==SA("dir"))
{
mode = InputString::StringDir;
}
else if (format==SA("file"))
{
mode = InputString::StringFile;
}
else // format=="string"
{
mode = InputString::StringFree;
}
InputString *stringOption =
new InputString(
layout,row,
layout,row,
child.attribute(SA("id")),
child.attribute(SA("defval")),
mode,
child.attribute(SA("docs")),
child.attribute(SA("abspath"))
);
m_options.insert(
child.attribute(SA("id")),
child.attribute(SA("defval")),
mode,
child.attribute(SA("docs")),
child.attribute(SA("abspath"))
);
m_options.insert(
child.attribute(SA("id")),
stringOption
);
connect(stringOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(stringOption,SIGNAL(changed()),SIGNAL(changed()));
}
else if (type==SA("enum"))
{
InputString *enumList = new InputString(
stringOption
);
connect(stringOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(stringOption,SIGNAL(changed()),SIGNAL(changed()));
}
else if (type==SA("enum"))
{
InputString *enumList = new InputString(
layout,row,
child.attribute(SA("id")),
child.attribute(SA("defval")),
InputString::StringFixed,
child.attribute(SA("docs"))
);
QDomElement enumVal = child.firstChildElement();
while (!enumVal.isNull())
{
enumList->addValue(enumVal.attribute(SA("name")));
enumVal = enumVal.nextSiblingElement();
);
QDomElement enumVal = child.firstChildElement();
while (!enumVal.isNull())
{
enumList->addValue(enumVal.attribute(SA("name")));
enumVal = enumVal.nextSiblingElement();
}
enumList->setDefault();
m_options.insert(child.attribute(SA("id")),enumList);
connect(enumList,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(enumList,SIGNAL(changed()),SIGNAL(changed()));
}
enumList->setDefault();
m_options.insert(child.attribute(SA("id")),enumList);
connect(enumList,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(enumList,SIGNAL(changed()),SIGNAL(changed()));
}
else if (type==SA("int"))
{
InputInt *intOption =
else if (type==SA("int"))
{
InputInt *intOption =
new InputInt(
layout,row,
layout,row,
child.attribute(SA("id")),
child.attribute(SA("defval")).toInt(),
child.attribute(SA("minval")).toInt(),
child.attribute(SA("maxval")).toInt(),
child.attribute(SA("docs"))
);
m_options.insert(
child.attribute(SA("id")),
child.attribute(SA("defval")).toInt(),
child.attribute(SA("minval")).toInt(),
child.attribute(SA("maxval")).toInt(),
child.attribute(SA("docs"))
);
m_options.insert(
child.attribute(SA("id")),
intOption
);
connect(intOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(intOption,SIGNAL(changed()),SIGNAL(changed()));
}
else if (type==SA("list"))
{
InputStrList::ListMode mode;
QString format = child.attribute(SA("format"));
if (format==SA("dir"))
{
mode = InputStrList::ListDir;
}
else if (format==SA("file"))
{
mode = InputStrList::ListFile;
intOption
);
connect(intOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(intOption,SIGNAL(changed()),SIGNAL(changed()));
}
else if (format==SA("filedir"))
else if (type==SA("list"))
{
mode = InputStrList::ListFileDir;
InputStrList::ListMode mode;
QString format = child.attribute(SA("format"));
if (format==SA("dir"))
{
mode = InputStrList::ListDir;
}
else if (format==SA("file"))
{
mode = InputStrList::ListFile;
}
else if (format==SA("filedir"))
{
mode = InputStrList::ListFileDir;
}
else // format=="string"
{
mode = InputStrList::ListString;
}
QStringList sl;
QDomElement listVal = child.firstChildElement();
while (!listVal.isNull())
{
sl.append(listVal.attribute(SA("name")));
listVal = listVal.nextSiblingElement();
}
InputStrList *listOption =
new InputStrList(
layout,row,
child.attribute(SA("id")),
sl,
mode,
child.attribute(SA("docs"))
);
m_options.insert(
child.attribute(SA("id")),
listOption
);
connect(listOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(listOption,SIGNAL(changed()),SIGNAL(changed()));
}
else // format=="string"
else if (type==SA("obsolete"))
{
mode = InputStrList::ListString;
// ignore
}
QStringList sl;
QDomElement listVal = child.firstChildElement();
while (!listVal.isNull())
else // should not happen
{
sl.append(listVal.attribute(SA("name")));
listVal = listVal.nextSiblingElement();
printf("Unsupported type %s\n",qPrintable(child.attribute(SA("type"))));
}
InputStrList *listOption =
new InputStrList(
layout,row,
child.attribute(SA("id")),
sl,
mode,
child.attribute(SA("docs"))
);
m_options.insert(
child.attribute(SA("id")),
listOption
);
connect(listOption,SIGNAL(showHelp(Input*)),SLOT(showHelp(Input*)));
connect(listOption,SIGNAL(changed()),SIGNAL(changed()));
}
else if (type==SA("obsolete"))
{
// ignore
}
else // should not happen
{
printf("Unsupported type %s\n",qPrintable(child.attribute(SA("type"))));
}
} // IS_SUPPORTED
child = child.nextSiblingElement();
}
......
......@@ -20,7 +20,7 @@ doxygen_version_minor=8
doxygen_version_revision=3.1
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn=20130209
doxygen_version_mmn=20130324
bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
......@@ -41,6 +41,7 @@ f_bison=NO
f_search=NO
f_langs=nl,sv,cz,fr,id,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,mk,br,dk,sk,ua,gr,tw,sr,ca,lt,za,ar,fa,sc,vi,tr,eo,am
f_sqlite3=NO
f_libclang=NO
while test -n "$1"; do
case $1 in
......@@ -101,6 +102,9 @@ while test -n "$1"; do
--with-sqlite3 | -with-sqlite3)
f_sqlite3=YES
;;
--with-libclang | -with-libclang)
f_libclang=YES
;;
-h | -help | --help)
f_help=y
;;
......@@ -152,6 +156,7 @@ Options:
--enable-langs list Include support for output languages listed in list.
[default: $f_langs]
--with-sqlite3 Add support for sqlite3 output [experimental]
--with-libclang Add support for libclang parsing [experimental]
--with-doxywizard Build the GUI frontend for doxygen. This
requires Qt version 4.
--with-doxysearch Build external search tools (doxysearch and doxyindexer)
......@@ -270,7 +275,7 @@ if test -z "$f_docdir"; then
fi
if test "$f_plf_auto" = NO; then
echo -n " Checking for platform $f_platform... "
printf " Checking for platform $f_platform... "
if test '!' -d tmake/lib/$f_platform; then
echo "not supported!"
echo
......@@ -284,7 +289,7 @@ fi
if test "$f_wizard" = YES; then
if test -z "$QTDIR"; then
echo " QTDIR environment variable not set!"
echo -n " Checking for Qt..."
printf " Checking for Qt..."
for d in /usr/{lib,share,qt}/{qt-4,qt4,qt,qt*,4} /usr; do
if test -x "$d/bin/qmake"; then
QTDIR=$d
......@@ -292,7 +297,7 @@ if test "$f_wizard" = YES; then
done
else
echo " Detected Qt via the QTDIR environment variable..."
echo -n " "
printf " "
fi
if test -z "$QTDIR"; then
echo "QTDIR not set and Qt not found at standard locations!"
......@@ -307,7 +312,7 @@ fi
if test "$f_search" = YES; then
if test -z "$XAPIAN"; then
echo -n " Checking for Xapian..."
printf " Checking for Xapian..."
for d in /usr /usr/local /opt/local; do
if test -e "$d/include/xapian.h"; then
XAPIAN=$d
......@@ -322,7 +327,7 @@ fi
# - check for make ------------------------------------------------------------
echo -n " Checking for GNU make tool... "
printf " Checking for GNU make tool... "
if test "$f_make" = NO; then
make_names="gmake make"
make_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin"
......@@ -349,7 +354,7 @@ echo "using $f_make"
# - check for install ------------------------------------------------------------
echo -n " Checking for GNU install tool... "
printf " Checking for GNU install tool... "
if test "$f_insttool" = NO; then
install_names="ginstall install"
install_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin /usr/ucb"
......@@ -386,7 +391,7 @@ echo "using $f_insttool";
# - check for dot ------------------------------------------------------------
echo -n " Checking for dot (part of GraphViz)... "
printf " Checking for dot (part of GraphViz)... "
if test "$f_dot" = NO; then
dot_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin"
dot_prog=NO
......@@ -408,7 +413,7 @@ fi
# - check for sqlite3 ---------------------------------------------------------
if test "$f_sqlite3" = YES; then
echo -n " Checking for sqlite3 ... "
printf " Checking for sqlite3 ... "
sqlite3_hdr_dir="/usr/include /usr/local/include /opt/local/include"
sqlite3_lib_dir="/usr/lib /usr/local/lib /opt/local/lib"
sqlite3_lib_name="libsqlite3.so libsqlite3.dylib libsqlite3.a"
......@@ -439,10 +444,43 @@ if test "$f_sqlite3" = YES; then
fi
fi
# - check for libclang ---------------------------------------------------------
if test "$f_libclang" = YES; then
printf " Checking for libclang ... "
libclang_hdr_dir="/usr/include /usr/local/include /opt/local/include"
libclang_lib_dir="/usr/lib /usr/local/lib /opt/local/lib"
libclang_lib_name="libclang.so libclang.dylib libclang.a"
libclang_hdr=NO
libclang_lib=NO
libclang_link=
for j in $libclang_hdr_dir; do
if test -f "$j/clang-c/Index.h"; then
libclang_hdr="$j/clang-c/Index.h"
break
fi
done
for i in $libclang_lib_dir; do
if test "$libclang_lib" = NO; then
for j in $libclang_lib_name; do
if test -f "$i/$j"; then
libclang_lib="$i/$j"
libclang_link="-L $i -lclang"
break
fi
done
fi
done
if test "$libclang_hdr" = NO -o "$libclang_lib" = NO; then
echo "not found!";
else
echo "using header $libclang_hdr and library $libclang_lib...";
fi
fi
# - check for perl ------------------------------------------------------------
echo -n " Checking for perl... "
printf " Checking for perl... "
if test "$f_perl" = NO; then
perl_names="perl perl5"
perl_dirs="$bin_dirs /usr/bin /usr/local/bin /bin /sbin"
......@@ -475,7 +513,7 @@ echo "using $f_perl";
# - check for flex ------------------------------------------------------------
echo -n " Checking for flex... "
printf " Checking for flex... "
if test "$f_flex" = NO; then
flex_dirs="$bin_dirs /usr/bin /usr/local/bin /bin"
flex_prog=NO
......@@ -499,7 +537,7 @@ fi
# - check for bison ------------------------------------------------------------
echo -n " Checking for bison... "
printf " Checking for bison... "
if test "$f_bison" = NO; then
bison_dirs="$bin_dirs /usr/bin /usr/local/bin /bin"
bison_prog=NO
......@@ -739,7 +777,7 @@ EOF
#if test "$f_thread" = YES; then
# realopts="$realopts thread"
#fi
cat $SRC .tmakeconfig | sed -e "s/\$extraopts/$realopts/g" -e "s;%%SQLITE3_LIBS%%;$sqlite3_link;g" >> $DST
cat $SRC .tmakeconfig | sed -e "s/\$extraopts/$realopts/g" -e "s;%%SQLITE3_LIBS%%;$sqlite3_link;g" -e "s;%%LIBCLANG_LIBS%%;$libclang_link;g" >> $DST
echo " Created $DST from $SRC..."
done
......@@ -768,10 +806,22 @@ fi
echo " Generating src/settings.h..."
echo "#ifndef SETTINGS_H" > src/settings.h
echo "#define SETTINGS_H" >> src/settings.h
echo "" >> src/settings.h
if test "$f_sqlite3" != NO; then
echo "#define USE_SQLITE3 1" >> src/settings.h
echo "#define USE_SQLITE3 1" >> src/settings.h
else
echo "#define USE_SQLITE3 0" >> src/settings.h
echo "#define USE_SQLITE3 0" >> src/settings.h
fi
if test "$f_libclang" != NO; then
echo "#define USE_LIBCLANG 1" >> src/settings.h
else
echo "#define USE_LIBCLANG 0" >> src/settings.h
fi
echo "" >> src/settings.h
echo "#define IS_SUPPORTED(x) \\" >> src/settings.h
echo " ((USE_SQLITE3 && strcmp(\"USE_SQLITE3\",(x))==0) || \\" >> src/settings.h
echo " (USE_LIBCLANG && strcmp(\"USE_LIBCLANG\",(x))==0) || \\" >> src/settings.h
echo " 0)" >> src/settings.h
echo "" >> src/settings.h
echo "#endif" >> src/settings.h
echo
......@@ -237,6 +237,10 @@ utime $now, $now, $file
\endverbatim
\htmlonly
Return to the <a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -131,4 +131,10 @@ typedef struct StructName TypeName
Click <a href="$(DOXYGEN_DOCDIR)/examples/restypedef/html/restypedef_8cpp.html">here</a>
for the corresponding HTML documentation that is generated by Doxygen.
\endhtmlonly
\htmlonly
Go to the <a href="output.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -2909,5 +2909,11 @@ browser generator. Do \e not use these commands in your own documentation.
</ul>
<hr>
\htmlonly
Go to the <a href="htmlcmds.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -2840,5 +2840,11 @@ 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.
\htmlonly
Go to the <a href="commands.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -122,4 +122,11 @@ which will expand to
\endverbatim
\htmlonly
<br/>
Go to the <a href="external.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -392,4 +392,10 @@ See <a href="https://github.com/michaeljones/breathe">the Breathe project</a> fo
a example that uses doxygen XML output from Python to bridge it with the
<a href="http://sphinx.pocoo.org/">Sphinx</a> document generator.
\htmlonly
Go to the <a href="custcmd.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -133,15 +133,15 @@ that doxygen can generate:
<code>diagrams_e.h</code>
\verbinclude diagrams_e.h
\htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/diagrams/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen<br/>
(<code>EXTRACT_ALL</code> = <code>YES</code> is used here).<p>
\endhtmlonly
\htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/diagrams/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen<br/>
(<code>EXTRACT_ALL</code> = <code>YES</code> is used here).
\endhtmlonly
\htmlonly
Go to the <a href="preprocessing.html">next</a> section or return to the
<a href="index.html">index</a>.
<a href="index.html">index</a>.
\endhtmlonly
*/
......
......@@ -429,11 +429,6 @@ Since python looks more like Java than like C or C++, you should set
config file.
\htmlonly
Go to the <a href="lists.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
\subsection vhdlblocks Comment blocks in VHDL
For VHDL a comment normally start with "--". Doxygen will extract comments
......@@ -554,10 +549,6 @@ Following is a example using doxygen style comments:
for the corresponding HTML documentation that is generated by doxygen.
\endhtmlonly
\htmlonly
Go to the <a href="lists.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
\section docstructure Anatomy of a comment block
......
......@@ -71,15 +71,19 @@ doxygen -w html header.html footer.html stylesheet.css <config_file>
a file named Doxyfile and process that. When this is also not found it
will used the default settings.
<li>For LaTeX output, you can generate the first part of \c refman.tex
(see \ref cfg_latex_header "LATEX_HEADER") and the style sheet included
by that header (normally <code>doxygen.sty</code>), using:
<li>For LaTeX output, you can generate the first and last part of \c refman.tex
(see \ref cfg_latex_header "LATEX_HEADER" and
\ref cfg_latex_footer "LATEX_FOOTER") and the style sheet included
by that header (normally <code>doxygen.sty</code>), using the following
command:
\verbatim
doxygen -w latex header.tex doxygen.sty
doxygen -w latex header.tex footer.tex doxygen.sty <config_file>
\endverbatim
If you need non-default options (for instance to use pdflatex) you need
to make a config file with those options set correctly and then specify
that config file as the third argument.
If you need non-default options (for instance to use extra latex packages)
you need to make a config file with those options set correctly and then specify
that config file after the generated files (make a backup of the configuration
file first so you don't loose it in case you forget to specify one of the
output files).
<li>For RTF output, you can generate the default style sheet file (see
\ref cfg_rtf_stylesheet_file "RTF_STYLESHEET_FILE") using:
\verbatim
......@@ -103,4 +107,10 @@ doxygen -w rtf rtfstyle.cfg
a file, use \c - for the file name.
</ul>
\htmlonly
Go to the <a href="doxywizard_usage.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -135,4 +135,10 @@ The GUI front-end has a menu with a couple of useful items
You will be asked to confirm the action.
</dl>
\htmlonly
Go to the <a href="config.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -304,4 +304,10 @@ The fields for such an item have the following meaning:
These words should be wrapped in `<span class="hl">` and `</span>` tags to highlight them
in the output.
\htmlonly
Go to the <a href="customize.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -113,4 +113,10 @@ members or classes belonging to the Qt toolkit, a link will be generated to
the Qt documentation. This is done independent of where this documentation
is located!
\htmlonly
Go to the <a href="doxygen_usage.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -199,11 +199,6 @@ Here Group1 is displayed as a subsection of the "Public Members". And
Group2 is a separate section because it contains members with
different protection levels (i.e. public and protected).
\htmlonly
Go to the <a href="formulas.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
\section subpaging Subpaging
Information can be grouped into pages using the \ref cmdpage "\\page" and
......
......@@ -216,4 +216,11 @@ comments can be used:
/*! <!-- This is a comment with a comment block --> Visible text */
\endverbatim
\htmlonly
<br/>
Go to the <a href="xmlcmds.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -194,5 +194,10 @@ Thanks go to:
providing hours of great music to listen to while coding.
<li>many, many others for suggestions, patches and bug reports.
</ul>
\htmlonly
Go to the <a href="install.html">next</a> section.
\endhtmlonly
*/
......@@ -46,12 +46,12 @@ tools should be installed.
<ul>
<li>Qt Software's GUI toolkit
<a href="http://qt.nokia.com/">Qt</A>
<a href="http://qt-project.org/">Qt</A>
\addindex Qt
version 4.3 or higher.
This is needed to build the GUI front-end doxywizard.
<li>A \f$\mbox{\LaTeX}\f$ distribution: for instance
<a href="http://www.tug.org/interest.html#free">teTeX 1.0</a>
<a href="http://www.tug.org/interest.html#free">TeX Live</a>
This is needed for generating LaTeX, Postscript, and PDF output.
<li><a href="http://www.graphviz.org/">
the Graph visualization toolkit version 1.8.10 or higher</a>
......@@ -536,7 +536,7 @@ install <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a> and
For LaTeX a number of distributions exists. Popular ones that should work with
doxygen are <a href="http://www.miktex.org">MikTex</a>
and <a href="http://www.xemtex.org">XemTex</a>.
and <a href="http://www.tug.org/protext/">proTeXt</a>.
Ghostscript can be <a href="http://sourceforge.net/projects/ghostscript/">downloaded</a>
from Sourceforge.
......@@ -616,16 +616,12 @@ features:
Doxygen was developed and tested under Linux &amp; MacOSX using the following
open-source tools:
<ul>
<li>GCC version 3.3.6 (Linux) and 4.0.1 (MacOSX)
<li>GNU flex version 2.5.33 (Linux) and 2.5.4 (MacOSX)
<li>GNU bison version 1.75
<li>GNU make version 3.80
<li>Perl version 5.8.1
<li>VIM version 6.2
<li>Firefox 1.5
<li>Trolltech's tmake version 1.3 (included in the distribution)
<li>teTeX version 2.0.2
<li>CVS 1.12.12
<li>GCC version 4.6.3 (Linux) and 4.2.1 (MacOSX)
<li>GNU flex version 2.5.35
<li>GNU bison version 2.5 (Linux) and 2.3 (MacOSX)
<li>GNU make version 3.81
<li>Perl version 5.12
<li>TeX Live 2009 (or later)
</ul>
\htmlonly
......
......@@ -23,15 +23,15 @@ text fragments, generated by doxygen, can be produced in languages other
than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile).
Currently (version 1.8.3), 39 languages
Currently (version 1.8.3.1), 40 languages
are supported (sorted alphabetically):
Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese,
Chinese Traditional, Croatian, Czech, Danish, Dutch, English,
Esperanto, Finnish, French, German, Greek, Hungarian, Indonesian,
Italian, Japanese (+En), Korean (+En), Latvian, Lithuanian, Macedonian,
Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian,
SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian,
and Vietnamese..
Italian, Japanese (+En), Korean (+En), Latvian, Lithuanian,
Macedonian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian,
Serbian, SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish,
Ukrainian, and Vietnamese..
The table of information related to the supported languages follows.
It is sorted by language alphabetically. The <b>Status</b> column
......@@ -196,6 +196,12 @@ when the translator was updated.
<td>&nbsp;</td>
<td>English based</td>
</tr>
<tr bgcolor="#ffffff">
<td>Latvian</td>
<td>Lauris</td>
<td>lauris at nix.lv</td>
<td>up-to-date</td>
</tr>
<tr bgcolor="#ffffff">
<td>Lithuanian</td>
<td>Tomas Simonaitis<br/>Mindaugas Radzius<br/>Aidas Berukstis<br/><span style="color: red; background-color: yellow">-- searching for the maintainer --</span></td>
......@@ -288,9 +294,9 @@ when the translator was updated.
</tr>
<tr bgcolor="#ffffff">
<td>Ukrainian</td>
<td>Olexij Tkatchenko<br/><span style="color: red; background-color: yellow">-- searching for the maintainer --</span></td>
<td><span style="color: brown">[resigned]</span><br/><span style="color: brown">[Please, try to help to find someone.]</span></td>
<td>1.4.1</td>
<td>Olexij Tkatchenko<br/>Petro Yermolenko</td>
<td><span style="color: brown">[resigned]</span><br/>python at i dot ua</td>
<td>up-to-date</td>
</tr>
<tr bgcolor="#ffffff">
<td>Vietnamese</td>
......@@ -309,7 +315,7 @@ when the translator was updated.
\latexonly
\footnotesize
\begin{longtable}{|l|l|l|l|}
\hline
\hline
{\bf Language} & {\bf Maintainer} & {\bf Contact address} & {\bf Status} \\
\hline
......@@ -377,6 +383,8 @@ when the translator was updated.
\hline
KoreanEn & see the Korean language & {\tt\tiny ~} & English based \\
\hline
Latvian & Lauris & {\tt\tiny lauris at nix.lv} & up-to-date \\
\hline
Lithuanian & Tomas Simonaitis & {\tt\tiny [unreachable] haden at homelan dot lt} & 1.4.6 \\
~ & Mindaugas Radzius & {\tt\tiny [unreachable] mindaugasradzius at takas dot lt} & ~ \\
~ & Aidas Berukstis & {\tt\tiny [unreachable] aidasber at takas dot lt} & ~ \\
......@@ -417,8 +425,8 @@ when the translator was updated.
\hline
Turkish & Emin Ilker Cetinbas & {\tt\tiny niw3 at yahoo dot com} & 1.7.5 \\
\hline
Ukrainian & Olexij Tkatchenko & {\tt\tiny [resigned] olexij at tkatchenko dot com} & 1.4.1 \\
~ & -- searching for the maintainer -- & {\tt\tiny [Please, try to help to find someone.]} & ~ \\
Ukrainian & Olexij Tkatchenko & {\tt\tiny [resigned] olexij at tkatchenko dot com} & up-to-date \\
~ & Petro Yermolenko & {\tt\tiny python at i dot ua} & ~ \\
\hline
Vietnamese & Dang Minh Tuan & {\tt\tiny tuanvietkey at gmail dot com} & 1.6.0 \\
\hline
......
......@@ -157,7 +157,7 @@ Emin Ilker Cetinbas: niw3 at yahoo dot com
TranslatorUkrainian
Olexij Tkatchenko: [resigned] olexij at tkatchenko dot com
-- searching for the maintainer --: [Please, try to help to find someone.]
Petro Yermolenko: python at i dot ua
TranslatorVietnamese
Dang Minh Tuan: tuanvietkey at gmail dot com
......
......@@ -61,4 +61,10 @@ The following output formats are \e indirectly supported by doxygen:
\ref cfg_pdf_hyperlinks "PDF_HYPERLINKS".
</dl>
\htmlonly
Go to the <a href="searching.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -190,4 +190,10 @@ you can look at the Perl scripts generated by Doxygen (such as
<b>doxylatex.pl</b> or <b>doxytemplate-latex.pl</b>) to get an idea on
how to use <b>DoxyModel.pm</b>.
\htmlonly
Go to the <a href="perlmod_tree.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -374,4 +374,10 @@ The meaning of each node in the documentation tree is as follows:
</ul>
</ul>
\htmlonly
Go to the <a href="arch.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -96,6 +96,15 @@ PREDEFINED = __declspec(x)=
This will make sure the __declspec(dllexport) is removed before doxygen
parses the source code.
Similar settings can be used for removing __attribute__ expressions from the input:
\verbatim
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = __attribute__(x)=
\endverbatim
For a more complex example, suppose you have the following obfuscated
code fragment of an abstract base class called \c IUnknown:
......@@ -256,7 +265,7 @@ preprocessing has been done (Hint: set <code>QUIET = YES</code> and
output).
\htmlonly
Go to the <a href="external.html">next</a> section or return to the
Go to the <a href="autolink.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
......
......@@ -185,4 +185,10 @@ has its own advantages and disadvantages:
Qt compressed help or CHM output, but it does require that Eclipse is
installed and running.
\htmlonly
Go to the <a href="extsearch.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
This diff is collapsed.
(1.8.3)
(1.8.3.1)
Doxygen supports the following 39 languages (sorted alphabetically):
Doxygen supports the following 40 languages (sorted alphabetically):
Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese,
Chinese Traditional, Croatian, Czech, Danish, Dutch, English,
Esperanto, Finnish, French, German, Greek, Hungarian, Indonesian,
Italian, Japanese (+En), Korean (+En), Lithuanian, Macedonian,
Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian,
SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian,
and Vietnamese.
Italian, Japanese (+En), Korean (+En), Latvian, Lithuanian,
Macedonian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian,
Serbian, SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish,
Ukrainian, and Vietnamese.
Of them, 8 translators are up-to-date, 31 translators are based on
Of them, 10 translators are up-to-date, 30 translators are based on
some adapter class, and 2 are English based.
----------------------------------------------------------------------
......@@ -25,8 +25,10 @@ still may be some details listed even for them:
TranslatorEsperanto
TranslatorGerman
TranslatorGreek
TranslatorLatvian -- Reimplementation using UTF-8 suggested.
TranslatorSlovak
TranslatorSpanish
TranslatorUkrainian
----------------------------------------------------------------------
The following translator classes need some maintenance (the most
......@@ -96,9 +98,6 @@ must be implemented to become up-to-date:
TranslatorArabic 1.4.6 49 methods to implement (20 %)
Note: Reimplementation using UTF-8 suggested.
TranslatorUkrainian 1.4.1 50 methods to implement (20 %)
Note: Reimplementation using UTF-8 suggested.
----------------------------------------------------------------------
The following translator classes derive directly from the
......@@ -629,6 +628,12 @@ TranslatorKoreanEn (TranslatorEnglish) 237 methods to implement (97 %)
virtual QCString latexLanguageSupportCommand()
TranslatorLatvian (Translator)
-----------------
Implements 242 of the required methods (100 %).
TranslatorLithuanian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %)
--------------------
......@@ -1121,77 +1126,6 @@ TranslatorTurkish (TranslatorAdapter_1_7_5) 17 methods to implement (7 %)
virtual QCString trInstanceMethods()
TranslatorUkrainian (TranslatorAdapter_1_4_1) 50 methods to implement (20 %)
-------------------
Implements 192 of the required methods (79 %).
Missing methods (should be implemented):
virtual QCString trDetailLevel()
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
virtual QCString trSearching()
virtual QCString trTemplateParameters()
virtual QCString trOverloadText()
virtual QCString trNoMatches()
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)
virtual QCString trLoading()
virtual QCString trSubprograms()
virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime)
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trFileIn(const char * name)
virtual QCString trClassMethods()
virtual QCString trProvidedByCategory()
virtual QCString trGlobalNamespace()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
virtual QCString trDesignOverview()
virtual QCString trTypeDocumentation()
virtual QCString trAndMore(const QCString & number)
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
virtual QCString trDirDepGraph(const char * name)
virtual QCString trModulesIndex()
virtual QCString trDirRelation(const char * name)
virtual QCString trMethodDocumentation()
virtual QCString trCompoundListFortran()
virtual QCString trDataTypes()
virtual QCString trEnumReference(const char * name)
virtual QCString trInheritedFrom(const char * members, const char * what)
virtual QCString trCiteReferences()
virtual QCString trAdditionalInheritedMembers()
virtual QCString trDirDependency(const char * name)
virtual QCString trCopyright()
virtual QCString trIncludesFileIn(const char * name)
virtual QCString trEnumGeneratedFromFiles(bool single)
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
virtual QCString trPanelSynchronisationTooltip(bool enable)
virtual QCString trCallerGraph()
virtual QCString trExtendsClass()
virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate)
virtual QCString trType(bool first_capital, bool singular)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
virtual QCString trInstanceMethods()
Obsolete methods (should be removed, never used):
virtual QCString trHeaderFilesDescription()
virtual QCString trField(bool first_capital, bool singular)
virtual QCString trPackageDocumentation()
virtual QCString trSources()
virtual QCString trReimplementedForInternalReasons()
virtual QCString trInterfaces()
virtual QCString trHeaderFiles()
virtual QCString trBugsAndLimitations()
virtual QCString trNoDescriptionAvailable()
TranslatorVietnamese (TranslatorAdapter_1_6_0) 26 methods to implement (10 %)
--------------------
......
......@@ -134,8 +134,10 @@ one file please tar or zip everything, so I only have to save and download
one file.
\htmlonly
Return to the <a href="index.html">index</a>.
Go to the <a href="features.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -99,5 +99,11 @@ class Engine
}
\endcode
\htmlonly
Go to the <a href="langhowto.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly
*/
......@@ -38,93 +38,91 @@ clean:
memgrp docstring pyexample mux manual dbusxml tclexample
class/html/index.html: class.h class.cfg
$(DOXYGEN)/bin/doxygen class.cfg
"$(DOXYGEN)/bin/doxygen" class.cfg
define/html/index.html: define.h define.cfg
$(DOXYGEN)/bin/doxygen define.cfg
"$(DOXYGEN)/bin/doxygen" define.cfg
enum/html/index.html: enum.h enum.cfg
$(DOXYGEN)/bin/doxygen enum.cfg
"$(DOXYGEN)/bin/doxygen" enum.cfg
file/html/index.html: file.h file.cfg
$(DOXYGEN)/bin/doxygen file.cfg
"$(DOXYGEN)/bin/doxygen" file.cfg
func/html/index.html: func.h func.cfg
$(DOXYGEN)/bin/doxygen func.cfg
"$(DOXYGEN)/bin/doxygen" func.cfg
page/html/index.html: page.doc page.cfg
$(DOXYGEN)/bin/doxygen page.cfg
"$(DOXYGEN)/bin/doxygen" page.cfg
relates/html/index.html: relates.cpp relates.cfg
$(DOXYGEN)/bin/doxygen relates.cfg
"$(DOXYGEN)/bin/doxygen" relates.cfg
author/html/index.html: author.cpp author.cfg
$(DOXYGEN)/bin/doxygen author.cfg
"$(DOXYGEN)/bin/doxygen" author.cfg
par/html/index.html: par.cpp par.cfg
$(DOXYGEN)/bin/doxygen par.cfg
"$(DOXYGEN)/bin/doxygen" par.cfg
overload/html/index.html: overload.cpp overload.cfg
$(DOXYGEN)/bin/doxygen overload.cfg
"$(DOXYGEN)/bin/doxygen" overload.cfg
example/html/index.html: example.cpp example_test.cpp example.cfg
$(DOXYGEN)/bin/doxygen example.cfg
"$(DOXYGEN)/bin/doxygen" example.cfg
include/html/index.html: include.cpp example_test.cpp include.cfg
$(DOXYGEN)/bin/doxygen include.cfg
"$(DOXYGEN)/bin/doxygen" include.cfg
qtstyle/html/index.html: qtstyle.cpp qtstyle.cfg
$(DOXYGEN)/bin/doxygen qtstyle.cfg
"$(DOXYGEN)/bin/doxygen" qtstyle.cfg
jdstyle/html/index.html: jdstyle.cpp jdstyle.cfg
$(DOXYGEN)/bin/doxygen jdstyle.cfg
"$(DOXYGEN)/bin/doxygen" jdstyle.cfg
structcmd/html/index.html: structcmd.h structcmd.cfg
$(DOXYGEN)/bin/doxygen structcmd.cfg
"$(DOXYGEN)/bin/doxygen" structcmd.cfg
autolink/html/index.html: autolink.cpp autolink.cfg
$(DOXYGEN)/bin/doxygen autolink.cfg
"$(DOXYGEN)/bin/doxygen" autolink.cfg
tag/html/index.html: tag.cpp tag.cfg example/html/index.html
$(DOXYGEN)/bin/doxygen tag.cfg
# sed -e "1,1s#perl#$(PERL)#g" tag/html/installdox >tag/html/installdox.perl
# cd tag/html ; $(PERL) installdox.perl -lexample.tag@../../example/html
"$(DOXYGEN)/bin/doxygen" tag.cfg
restypedef/html/index.html: restypedef.cpp restypedef.cfg
$(DOXYGEN)/bin/doxygen restypedef.cfg
"$(DOXYGEN)/bin/doxygen" restypedef.cfg
afterdoc/html/index.html: afterdoc.h afterdoc.cfg
$(DOXYGEN)/bin/doxygen afterdoc.cfg
"$(DOXYGEN)/bin/doxygen" afterdoc.cfg
template/html/index.html: templ.cpp templ.cfg
$(DOXYGEN)/bin/doxygen templ.cfg
"$(DOXYGEN)/bin/doxygen" templ.cfg
group/html/index.html: group.cpp group.cfg
$(DOXYGEN)/bin/doxygen group.cfg
"$(DOXYGEN)/bin/doxygen" group.cfg
memgrp/html/index.html: memgrp.cpp memgrp.cfg
$(DOXYGEN)/bin/doxygen memgrp.cfg
"$(DOXYGEN)/bin/doxygen" memgrp.cfg
pyexample/html/index.html: pyexample.py pyexample.cfg
$(DOXYGEN)/bin/doxygen pyexample.cfg
"$(DOXYGEN)/bin/doxygen" pyexample.cfg
tclexample/html/index.html: tclexample.tcl tclexample.cfg
$(DOXYGEN)/bin/doxygen tclexample.cfg
"$(DOXYGEN)/bin/doxygen" tclexample.cfg
mux/html/index.html: mux.vhdl mux.cfg
$(DOXYGEN)/bin/doxygen mux.cfg
"$(DOXYGEN)/bin/doxygen" mux.cfg
manual/html/index.html: manual.c manual.cfg
$(DOXYGEN)/bin/doxygen manual.cfg
"$(DOXYGEN)/bin/doxygen" manual.cfg
docstring/html/index.html: docstring.py docstring.cfg
$(DOXYGEN)/bin/doxygen docstring.cfg
"$(DOXYGEN)/bin/doxygen" docstring.cfg
#dbusxml/html/index.html: dbusxml.xml dbusxml.cfg
# $(DOXYGEN)/bin/doxygen dbusxml.cfg
diagrams/html/index.html: diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg
ifneq ($(HAVE_DOT),)
$(DOXYGEN)/bin/doxygen diagrams.cfg
"$(DOXYGEN)/bin/doxygen" diagrams.cfg
endif
......@@ -50,7 +50,7 @@ LOOKUP_CACHE_SIZE = 0
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
EXTRACT_PRIVATE = YES
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
......@@ -120,13 +120,14 @@ USE_MDFILE_AS_MAINPAGE =
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
INLINE_SOURCES = YES
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
CLANG_ASSISTED_PARSING = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
......@@ -228,7 +229,7 @@ MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = YES
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
......@@ -236,7 +237,7 @@ XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
GENERATE_DOCBOOK = YES
GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
......@@ -258,7 +259,7 @@ EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
PREDEFINED = Q_EXPORT=
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
......
......@@ -88,6 +88,12 @@ Q_EXPORT void *qmemmove( void *dst, const void *src, uint len );
#define memmove(s1,s2,n) qmemmove((s1),(s2),(n))
#endif
#if defined(_OS_WIN32_)
#define qsnprintf _snprintf
#else
#define qsnprintf snprintf
#endif
Q_EXPORT char *qstrdup( const char * );
Q_EXPORT inline uint cstrlen( const char *str )
......
......@@ -18,6 +18,10 @@
#ifndef _BUFSTR_H
#define _BUFSTR_H
#include <qglobal.h>
#include <qcstring.h>
#include <stdlib.h>
/*! @brief Buffer used to store strings
*
* This buffer is used append characters and strings. It will automatically
......
......@@ -88,11 +88,19 @@ static QCString getListOfBibFiles(const QCString &sep,bool namesOnly)
void CiteDict::writeLatexBibliography(FTextStream &t)
{
if (m_entries.count()==0) return;
if (m_entries.isEmpty())
return;
QCString style = Config_getString("LATEX_BIB_STYLE");
if (style.isEmpty()) style="plain";
t << "\\newpage \\bibliographystyle{" << style << "}" << endl;
t << "\\bibliography{" << getListOfBibFiles(",",TRUE) << "}" << endl;
if (style.isEmpty())
style="plain";
t << "% Bibliography\n"
"\\newpage\n"
"\\phantomsection\n"
"\\addcontentsline{toc}{part}{" << theTranslator->trCiteReferences() << "}\n"
"\\bibliographystyle{" << style << "}\n"
"\\bibliography{" << getListOfBibFiles(",",TRUE) << "}\n"
"\n";
}
void CiteDict::insert(const char *label)
......
This diff is collapsed.
#ifndef CLANGPARSER_H
#define CLANGPARSER_H
#include <qcstring.h>
class OutputList;
class FileDef;
class ClangParser
{
public:
static ClangParser *instance();
void start(const char *fileName);
void finish();
QCString lookup(uint line,const char *symbol);
void writeSources(OutputList &ol,FileDef *fd);
private:
void linkIdentifier(OutputList &ol,FileDef *fd,
uint &line,uint &column,
const char *text,int tokenIndex);
void linkMacro(OutputList &ol,FileDef *fd,
uint &line,uint &column,
const char *text);
void linkInclude(OutputList &ol,FileDef *fd,
uint &line,uint &column,
const char *text);
class Private;
Private *p;
ClangParser();
virtual ~ClangParser();
static ClangParser *s_instance;
};
#endif
......@@ -3503,8 +3503,9 @@ ClassDef *ClassDef::insertTemplateInstance(const QCString &fileName,
if (templateClass==0)
{
Debug::print(Debug::Classes,0," New template instance class `%s'`%s'\n",name().data(),templSpec.data());
QCString tcname = removeRedundantWhiteSpace(localName()+templSpec);
templateClass = new ClassDef(
fileName,startLine,startColumn,localName()+templSpec,ClassDef::Class);
fileName,startLine,startColumn,tcname,ClassDef::Class);
templateClass->setTemplateMaster(this);
templateClass->setOuterScope(getOuterScope());
templateClass->setHidden(isHidden());
......@@ -3525,7 +3526,8 @@ ClassDef *ClassDef::getVariableInstance(const char *templSpec)
if (templateClass==0)
{
Debug::print(Debug::Classes,0," New template variable instance class `%s'`%s'\n",qPrint(name()),qPrint(templSpec));
templateClass = new ClassDef("<code>",1,1,name()+templSpec,
QCString tcname = removeRedundantWhiteSpace(name()+templSpec);
templateClass = new ClassDef("<code>",1,1,tcname,
ClassDef::Class,0,0,FALSE);
templateClass->addMembersToTemplateInstance( this, templSpec );
templateClass->setTemplateMaster(this);
......@@ -4164,13 +4166,13 @@ void ClassDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QC
//static bool optimizeVhdl = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
if (ml)
{
ml->writeDeclarations(ol,this,0,0,0,title,subTitle,FALSE,showInline,inheritedFrom);
ml->writeDeclarations(ol,this,0,0,0,title,subTitle,definitionType(),FALSE,showInline,inheritedFrom);
if (lt2!=-1)
{
MemberList * ml2 = getMemberList((MemberListType)lt2);
if (ml2)
{
ml2->writeDeclarations(ol,this,0,0,0,0,0,FALSE,showInline,inheritedFrom);
ml2->writeDeclarations(ol,this,0,0,0,0,0,definitionType(),FALSE,showInline,inheritedFrom);
}
}
}
......@@ -4226,7 +4228,7 @@ void ClassDef::writePlainMemberDeclaration(OutputList &ol,
if (ml)
{
ml->setInGroup(inGroup);
ml->writePlainDeclarations(ol,this,0,0,0,inheritedFrom,inheritId);
ml->writePlainDeclarations(ol,this,0,0,0,definitionType(),inheritedFrom,inheritId);
}
}
......
......@@ -72,6 +72,7 @@ class ClassDef : public Definition
* \param startColumn column number where the definition of this compound
* starts.
* \param name the name of this compound (including scope)
* \param symId unique Id for this symbol
* \param ct the kind of Compound
* \param ref the tag file from which this compound is extracted
* or 0 if the compound doesn't come from a tag file
......
......@@ -21,6 +21,8 @@
class CodeOutputInterface;
class FileDef;
class MemberDef;
class QCString;
class Definition;
void parseCCode(CodeOutputInterface &,const char *,const QCString &,
bool ,const char *,FileDef *fd,
......
This diff is collapsed.
......@@ -341,7 +341,8 @@ void replaceComment(int offset);
<Scan>\n { /* new line */
copyToOutput(yytext,(int)yyleng);
}
<Scan>("//!"|"///"[/]*)/.*\n[ \t]*"//"[\/!][^\/] { /* start C++ style special comment block */
<Scan>"//!"/.*\n[ \t]*"//"[\/!][^\/] | /* start C++ style special comment block */
<Scan>("///"[/]*)/[^/].*\n[ \t]*"//"[\/!][^\/] { /* start C++ style special comment block */
if (g_mlBrief)
{
REJECT; // bail out if we do not need to convert
......
......@@ -1188,11 +1188,23 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
{
// see bug 613024, we need to put the newlines after ending the XRef section.
setOutput(OutputDoc);
addOutput("\n\n");
int i;
for (i=0;i<yyleng;)
{
if (yytext[i]=='\n') addOutput('\n'),i++;
else if (strcmp(yytext+i,"\\_linebr")==0) addOutput('\n'),i+=8;
else i++;
}
}
else if (inContext!=OutputBrief)
{
addOutput("\n\n");
int i;
for (i=0;i<yyleng;)
{
if (yytext[i]=='\n') addOutput('\n'),i++;
else if (strcmp(yytext+i,"\\_linebr")==0) addOutput('\n'),i+=8;
else i++;
}
setOutput(OutputDoc);
}
else // inContext==OutputBrief
......
......@@ -49,9 +49,9 @@ The default language is English, other supported languages are:
Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian, Persian,
Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian,
Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic,
Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
'>
<value name='Afrikaans'/>
<value name='Arabic'/>
......@@ -262,10 +262,10 @@ can mix doxygen, HTML, and XML commands with Markdown formatting.
Disable only in case of backward compatibilities issues.
' defval='1'/>
<option type='bool' id='AUTOLINK_SUPPORT' docs='
When enabled doxygen tries to link words that correspond to documented classes,
or namespaces to their corresponding documentation. Such a link can be
prevented in individual cases by by putting a % sign in front of the word or
globally by setting AUTOLINK_SUPPORT to NO.
When enabled doxygen tries to link words that correspond to documented
classes, or namespaces to their corresponding documentation. Such a link can
be prevented in individual cases by by putting a % sign in front of the word
or globally by setting AUTOLINK_SUPPORT to NO.
' defval='1'/>
<option type='bool' id='BUILTIN_STL_SUPPORT' docs='
If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
......@@ -736,8 +736,10 @@ invoke to filter for each input file. Doxygen will invoke the filter program
by executing (via popen()) the command &lt;filter&gt; &lt;input-file&gt;, where &lt;filter&gt;
is the value of the INPUT_FILTER tag, and &lt;input-file&gt; is the name of an
input file. Doxygen will then use the output that the filter program writes
to standard output. If FILTER_PATTERNS is specified, this tag will be
ignored.
to standard output. If FILTER_PATTERNS is specified, this tag will be ignored.
Note that the filter must not add or remove lines; it is applied before the
code is scanned, but not when the output code is generated. If lines are added
or removed, the anchors will not be placed correctly.
' defval=''/>
<option type='list' id='FILTER_PATTERNS' format='string' docs='
The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
......@@ -762,9 +764,9 @@ FILTER_SOURCE_FILES is enabled.
' depends='FILTER_SOURCE_FILES'/>
<option type='string' id='USE_MDFILE_AS_MAINPAGE' format='string' docs='
If the USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that
is part of the input, its contents will be placed on the main page (index.html).
This can be useful if you have a project on for instance GitHub and want reuse
the introduction page also for the doxygen output.
is part of the input, its contents will be placed on the main page
(index.html). This can be useful if you have a project on for instance GitHub
and want reuse the introduction page also for the doxygen output.
' defval=''/>
</group>
<group name='Source Browser' docs='configuration options related to source browsing'>
......@@ -811,6 +813,18 @@ If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
will generate a verbatim copy of the header file for each class for
which an include is specified. Set to NO to disable this.
' defval='1'/>
<option type='bool' id='CLANG_ASSISTED_PARSING' setting='USE_LIBCLANG' docs='
If CLANG_ASSISTED_PARSING is set to YES, then doxygen will use the clang parser
for better parsing at the cost of reduced performance. This can be particularly
helpful with template rich C++ code for which doxygen&apos;s built-in
parser lacks the necessairy type information.
' defval='0'/>
<option type='string' id='CLANG_OPTIONS' settings='USE_LIBCLANG' docs='
If clang assisted parsing is enabled you can provide the compiler with command
line options that you would normally use when invoking the compiler. Note that
the include paths will be set by doxygen based on the files and directory
specified at INPUT and INCLUDE_PATH.
' defval='' depends='CLANG_ASSISTED_PARSING'/>
</group>
<group name='Index' docs='configuration options related to the alphabetical class index'>
<option type='bool' id='ALPHABETICAL_INDEX' docs='
......@@ -1163,8 +1177,8 @@ script for searching. Instead the search results are written to an XML file
which needs to be processed by an external indexer. Doxygen will invoke an
external search engine pointed to by the SEARCHENGINE_URL option to obtain
the search results. Doxygen ships with an example indexer (doxyindexer) and
search engine (doxysearch.cgi) which are based on the open source search engine
library Xapian. See the manual for configuration details.
search engine (doxysearch.cgi) which are based on the open source search
engine library Xapian. See the manual for configuration details.
' defval='0' depends='SEARCHENGINE'/>
<option type='string' id='SEARCHENGINE_URL' docs='
The SEARCHENGINE_URL should point to a search engine hosted by a web server
......
......@@ -29,11 +29,14 @@ def parseOption(node):
defval = node.getAttribute('defval')
adefval = node.getAttribute('altdefval')
depends = node.getAttribute('depends')
setting = node.getAttribute('setting')
# replace \ by \\, replace " by \", and ' ' by a newline with end string and start string at next line
docC = doc.strip().replace('\\','\\\\').replace('"','\\"').replace(' ','\\n"\n "')
if len(setting)>0:
print "#if %s" % (setting)
print " //----"
if type=='bool':
if len(adefval)>0:
if len(adefval)>0:
enabled = adefval
elif defval=='1':
enabled = "TRUE"
......@@ -94,6 +97,8 @@ def parseOption(node):
print " cl->setWidgetType(ConfigList::FileAndDir);"
elif type=='obsolete':
print " cfg->addObsolete(\"%s\");" % (name)
if len(setting)>0:
print "#endif"
......@@ -121,6 +126,7 @@ def main():
print "#include \"configoptions.h\""
print "#include \"config.h\""
print "#include \"portable.h\""
print "#include \"settings.h\""
print ""
print "void addConfigOptions(Config *cfg)"
print "{"
......
......@@ -6,6 +6,7 @@
#include "configoptions.h"
#include "config.h"
#include "portable.h"
#include "settings.h"
void addConfigOptions(Config *cfg)
{
......@@ -90,9 +91,9 @@ void addConfigOptions(Config *cfg)
"Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,\n"
"Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,\n"
"Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English\n"
"messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian, Persian,\n"
"Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,\n"
"Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.",
"messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian,\n"
"Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic,\n"
"Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.",
"English"
);
ce->addValue("Afrikaans");
......@@ -366,10 +367,10 @@ void addConfigOptions(Config *cfg)
//----
cb = cfg->addBool(
"AUTOLINK_SUPPORT",
"When enabled doxygen tries to link words that correspond to documented classes,\n"
"or namespaces to their corresponding documentation. Such a link can be\n"
"prevented in individual cases by by putting a % sign in front of the word or\n"
"globally by setting AUTOLINK_SUPPORT to NO.",
"When enabled doxygen tries to link words that correspond to documented\n"
"classes, or namespaces to their corresponding documentation. Such a link can\n"
"be prevented in individual cases by by putting a % sign in front of the word\n"
"or globally by setting AUTOLINK_SUPPORT to NO.",
TRUE
);
//----
......@@ -1033,8 +1034,10 @@ void addConfigOptions(Config *cfg)
"is the value of the INPUT_FILTER tag, and <input-file> is the name of an\n"
"input file. Doxygen will then use the output that the filter program writes\n"
"to standard output.\n"
"If FILTER_PATTERNS is specified, this tag will be\n"
"ignored."
"If FILTER_PATTERNS is specified, this tag will be ignored.\n"
"Note that the filter must not add or remove lines; it is applied before the\n"
"code is scanned, but not when the output code is generated. If lines are added\n"
"or removed, the anchors will not be placed correctly."
);
cs->setWidgetType(ConfigString::File);
//----
......@@ -1071,9 +1074,9 @@ void addConfigOptions(Config *cfg)
cs = cfg->addString(
"USE_MDFILE_AS_MAINPAGE",
"If the USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that\n"
"is part of the input, its contents will be placed on the main page (index.html).\n"
"This can be useful if you have a project on for instance GitHub and want reuse\n"
"the introduction page also for the doxygen output."
"is part of the input, its contents will be placed on the main page\n"
"(index.html). This can be useful if you have a project on for instance GitHub\n"
"and want reuse the introduction page also for the doxygen output."
);
//---------------------------------------------------------------------------
cfg->addInfo("Source Browser","configuration options related to source browsing");
......@@ -1148,6 +1151,26 @@ void addConfigOptions(Config *cfg)
"which an include is specified. Set to NO to disable this.",
TRUE
);
#if USE_LIBCLANG
//----
cb = cfg->addBool(
"CLANG_ASSISTED_PARSING",
"If CLANG_ASSISTED_PARSING is set to YES, then doxygen will use the clang parser\n"
"for better parsing at the cost of reduced performance. This can be particularly\n"
"helpful with template rich C++ code for which doxygen's built-in\n"
"parser lacks the necessairy type information.",
FALSE
);
#endif
//----
cs = cfg->addString(
"CLANG_OPTIONS",
"If clang assisted parsing is enabled you can provide the compiler with command\n"
"line options that you would normally use when invoking the compiler. Note that\n"
"the include paths will be set by doxygen based on the files and directory\n"
"specified at INPUT and INCLUDE_PATH."
);
cs->addDependency("CLANG_ASSISTED_PARSING");
//---------------------------------------------------------------------------
cfg->addInfo("Index","configuration options related to the alphabetical class index");
//---------------------------------------------------------------------------
......@@ -1698,8 +1721,8 @@ void addConfigOptions(Config *cfg)
"which needs to be processed by an external indexer. Doxygen will invoke an\n"
"external search engine pointed to by the SEARCHENGINE_URL option to obtain\n"
"the search results. Doxygen ships with an example indexer (doxyindexer) and\n"
"search engine (doxysearch.cgi) which are based on the open source search engine\n"
"library Xapian. See the manual for configuration details.",
"search engine (doxysearch.cgi) which are based on the open source search\n"
"engine library Xapian. See the manual for configuration details.",
FALSE
);
cb->addDependency("SEARCHENGINE");
......
......@@ -394,6 +394,16 @@ void Definition::setName(const char *name)
m_name = name;
}
void Definition::setId(const char *id)
{
if (id==0) return;
if (Doxygen::clangUsrMap)
{
//printf("Definition::setId '%s'->'%s'\n",id,m_name.data());
Doxygen::clangUsrMap->insert(id,this);
}
}
void Definition::addSectionsToDefinition(QList<SectionInfo> *anchorList)
{
if (!anchorList) return;
......@@ -798,12 +808,12 @@ bool readCodeFragment(const char *fileName,
}
// copy until end of line
result+=c;
startLine=lineNr;
if (c==':')
{
result+=cn;
if (cn=='\n') lineNr++;
}
startLine=lineNr;
const int maxLineLength=4096;
char lineStr[maxLineLength];
do
......@@ -852,6 +862,7 @@ bool readCodeFragment(const char *fileName,
}
}
result = transcodeCharacterStringToUTF8(result);
//fprintf(stderr,"readCodeFragement(%d-%d)=%s\n",startLine,endLine,result.data());
return found;
}
......
......@@ -265,6 +265,9 @@ class Definition : public DefinitionIntf, public LockableObj
/*! Sets a new \a name for the definition */
void setName(const char *name);
/*! Sets a unique id for the symbol. Used for libclang integration. */
void setId(const char *name);
/*! Sets the documentation of this definition to \a d. */
virtual void setDocumentation(const char *d,const char *docFile,int docLine,bool stripWhiteSpace=TRUE);
......
......@@ -19,6 +19,8 @@
#ifndef DIAGRAM_H
#define DIAGRAM_H
#include <qglobal.h>
class ClassDef;
class TreeDiagram;
class FTextStream;
......
......@@ -276,9 +276,6 @@ class DocbookCodeGenerator : public CodeOutputInterface
if (extRef) m_external=extRef;
}
}
void linkableSymbol(int, const char *,Definition *,Definition *)
{
}
void setCurrentDoc(Definition *,const char *,bool)
{
}
......
......@@ -21,6 +21,7 @@
#include <qcstring.h>
#include <qlist.h>
#include <stdio.h>
#include "htmlattrib.h"
class Definition;
......
......@@ -92,29 +92,37 @@ static const char svgZoomHeader[] =
;
static const char svgZoomFooter[] =
// navigation panel
" <g id=\"navigator\" transform=\"translate(0 0)\" fill=\"#404254\">\n"
" <rect fill=\"#f2f5e9\" fill-opacity=\"0.5\" stroke=\"#606060\" stroke-width=\".5\" x=\"0\" y=\"0\" width=\"60\" height=\"60\"/>\n"
// zoom in
" <use id=\"zoomplus\" xlink:href=\"#zoomPlus\" x=\"17\" y=\"9\" onmousedown=\"handleZoom(evt,'in')\"/>\n"
// zoom out
" <use id=\"zoomminus\" xlink:href=\"#zoomMin\" x=\"42\" y=\"9\" onmousedown=\"handleZoom(evt,'out')\"/>\n"
// reset zoom
" <use id=\"reset\" xlink:href=\"#resetDef\" x=\"30\" y=\"36\" onmousedown=\"handleReset()\"/>\n"
// arrow up
" <g id=\"arrowUp\" xlink:href=\"#dirArrow\" transform=\"translate(30 24)\" onmousedown=\"handlePan(0,-1)\">\n"
" <use xlink:href=\"#rim\" fill=\"#404040\">\n"
" <set attributeName=\"fill\" to=\"#808080\" begin=\"arrowUp.mouseover\" end=\"arrowUp.mouseout\"/>\n"
" </use>\n"
" <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n"
" </g>\n"
// arrow right
" <g id=\"arrowRight\" xlink:href=\"#dirArrow\" transform=\"rotate(90) translate(36 -43)\" onmousedown=\"handlePan(1,0)\">\n"
" <use xlink:href=\"#rim\" fill=\"#404040\">\n"
" <set attributeName=\"fill\" to=\"#808080\" begin=\"arrowRight.mouseover\" end=\"arrowRight.mouseout\"/>\n"
" </use>\n"
" <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n"
" </g>\n"
// arrow down
" <g id=\"arrowDown\" xlink:href=\"#dirArrow\" transform=\"rotate(180) translate(-30 -48)\" onmousedown=\"handlePan(0,1)\">\n"
" <use xlink:href=\"#rim\" fill=\"#404040\">\n"
" <set attributeName=\"fill\" to=\"#808080\" begin=\"arrowDown.mouseover\" end=\"arrowDown.mouseout\"/>\n"
" </use>\n"
" <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n"
" </g>\n"
// arrow left
" <g id=\"arrowLeft\" xlink:href=\"#dirArrow\" transform=\"rotate(270) translate(-36 17)\" onmousedown=\"handlePan(-1,0)\">\n"
" <use xlink:href=\"#rim\" fill=\"#404040\">\n"
" <set attributeName=\"fill\" to=\"#808080\" begin=\"arrowLeft.mouseover\" end=\"arrowLeft.mouseout\"/>\n"
......@@ -122,15 +130,7 @@ static const char svgZoomFooter[] =
" <path fill=\"none\" stroke=\"white\" stroke-width=\"1.5\" d=\"M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5\"/>\n"
" </g>\n"
" </g>\n"
/*
" <svg viewBox=\"0 0 25 25\" width=\"100%\" height=\"30px\" preserveAspectRatio=\"xMaxYMin meet\"> \n"
" <g id=\"printButton\" transform=\"scale(0.4 0.4)\" onmousedown=\"handlePrint(evt)\">\n"
" <rect height=\"23.33753581\" id=\"paper\" rx=\"2\" style=\"fill:#f2f5e9;fill-rule:evenodd;stroke:#111111;stroke-width:3.224;stroke-linejoin:round;\" transform=\"matrix(1.000000,0.000000,-0.339266,0.940691,0.000000,0.000000)\" width=\"25.55231285\" x=\"26.69387353\" y=\"7.36162977\"/>\n"
" <rect height=\"26.272097\" id=\"body\" rx=\"2\" style=\"fill:#404040;fill-rule:evenodd;stroke:#111111;stroke-width:3.125;stroke-linejoin:round;\" width=\"50\" x=\"4.5295201\" y=\"27.078951\"/>\n"
" <rect height=\"8.27750969\" id=\"tray\" style=\"fill:#d2d5c9;fill-rule:evenodd;stroke:#111111;stroke-width:3.125;stroke-linecap:round;stroke-linejoin:round;\" width=\"40\" x=\"10.28778839\" y=\"44.96812282\"/>\n"
" </g>\n"
" </svg>\n"
*/
// link to orginial SVG
" <svg viewBox=\"0 0 15 15\" width=\"100%\" height=\"30px\" preserveAspectRatio=\"xMaxYMin meet\">\n"
" <g id=\"arrow_out\" transform=\"scale(0.3 0.3)\">\n"
" <a xlink:href=\"$orgname\" target=\"_base\">\n"
......
This diff is collapsed.
......@@ -103,6 +103,7 @@ class Doxygen
static bool insideMainPage;
static FileNameDict *includeNameDict;
static FileNameDict *exampleNameDict;
static QDict<void> inputPaths;
static FileNameDict *inputNameDict;
static FileNameList *inputNameList;
static FileNameDict *imageNameDict;
......@@ -130,6 +131,7 @@ class Doxygen
static QTime runningTime;
static SearchIndexIntf *searchIndex;
static QDict<DefinitionIntf> *symbolMap;
static QDict<Definition> *clangUsrMap;
static bool outputToWizard;
static QDict<int> *htmlDirMap;
static QCache<LookupInfo> *lookupCache;
......@@ -161,6 +163,7 @@ void parseInput();
void generateOutput();
void readAliases();
void readFormulaRepository();
void cleanUpDoxygen();
int readFileOrDirectory(const char *s,
FileNameList *fnList,
FileNameDict *fnDict,
......@@ -171,7 +174,8 @@ int readFileOrDirectory(const char *s,
StringDict *resultDict,
bool recursive,
bool errorIfNotExist=TRUE,
QDict<void> *killDict = 0
QDict<void> *killDict = 0,
QDict<void> *paths = 0
);
int readDir(QFileInfo *fi,
FileNameList *fnList,
......
......@@ -92,7 +92,7 @@ For doxygen specific concepts the following subclasses are available
- GroupDef: for storing grouping related data
- PageDef: for storing page related data
Finally the data for members of classes, namespaces, and files is stored is
Finally the data for members of classes, namespaces, and files is stored in
the subclass MemberDef.
Producing output
......
......@@ -18,7 +18,7 @@ TEMPLATE = app.t
CONFIG = console warn_on $extraopts
HEADERS = doxygen.h
SOURCES = main.cpp
unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread %%SQLITE3_LIBS%%
unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread %%SQLITE3_LIBS%% %%LIBCLANG_LIBS%%
win32:INCLUDEPATH += .
win32-mingw:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -lpthread
win32-msvc:LIBS += qtools.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib
......@@ -26,7 +26,7 @@ win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\lib
win32-borland:LIBS += qtools.lib md5.lib doxygen.lib doxycfg.lib shell32.lib iconv.lib
win32-borland:TMAKE_LFLAGS += -L..\lib -L$(BCB)\lib\psdk
win32:TMAKE_CXXFLAGS += -DQT_NODLL
win32-g++:LIBS = -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -liconv -lpthread %%SQLITE3_LIBS%% -Wl,--as-needed -lole32
win32-g++:LIBS = -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -liconv -lpthread %%SQLITE3_LIBS%% %%LIBCLANG_LIBS%% -Wl,--as-needed -lole32
win32-g++:TMAKE_CXXFLAGS += -fno-exceptions -fno-rtti
INCLUDEPATH += ../qtools ../libmd5 .
DESTDIR = ../bin
......
......@@ -133,6 +133,7 @@ Entry::Entry(const Entry &e)
hidden = e.hidden;
artificial = e.artificial;
groupDocType = e.groupDocType;
id = e.id;
m_parent = e.m_parent;
m_sublist = new QList<Entry>;
......@@ -259,6 +260,7 @@ void Entry::reset()
subGrouping = TRUE;
protection = Public;
groupDocType = GROUPDOC_NORMAL;
id.resize(0);
m_sublist->clear();
extends->clear();
groups->clear();
......
......@@ -267,6 +267,7 @@ class Entry
bool hidden; //!< does this represent an entity that is hidden from the output
bool artificial; //!< Artificially introduced item
GroupDocType groupDocType;
QCString id; //!< libclang id
static int num; //!< counts the total number of entries
......
......@@ -41,6 +41,8 @@
#include "membergroup.h"
#include "dirdef.h"
#include "config.h"
#include "clangparser.h"
#include "settings.h"
//---------------------------------------------------------------------------
......@@ -794,7 +796,7 @@ void FileDef::writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) const
/*! Write a source listing of this file to the output */
void FileDef::writeSource(OutputList &ol)
{
static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW");
static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW");
static bool filterSourceFiles = Config_getBool("FILTER_SOURCE_FILES");
static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE");
QCString title = docname;
......@@ -843,14 +845,29 @@ void FileDef::writeSource(OutputList &ol)
if (latexSourceCode) ol.enable(OutputGenerator::Latex);
}
ParserInterface *pIntf = Doxygen::parserManager->getParser(getDefFileExtension());
pIntf->resetCodeParserState();
ol.startCodeFragment();
pIntf->parseCode(ol,0,
fileToString(absFilePath(),filterSourceFiles,TRUE),
FALSE,0,this
);
ol.endCodeFragment();
#if USE_LIBCLANG
static bool clangAssistedParsing = Config_getBool("CLANG_ASSISTED_PARSING");
if (clangAssistedParsing &&
(getLanguage()==SrcLangExt_Cpp || getLanguage()==SrcLangExt_ObjC))
{
ol.startCodeFragment();
ClangParser::instance()->start(absFilePath());
ClangParser::instance()->writeSources(ol,this);
ClangParser::instance()->finish();
ol.endCodeFragment();
}
else
#endif
{
ParserInterface *pIntf = Doxygen::parserManager->getParser(getDefFileExtension());
pIntf->resetCodeParserState();
ol.startCodeFragment();
pIntf->parseCode(ol,0,
fileToString(absFilePath(),filterSourceFiles,TRUE),
FALSE,0,this
);
ol.endCodeFragment();
}
ol.endContents();
endFileWithNavPath(this,ol);
ol.enableAll();
......@@ -1659,7 +1676,7 @@ void FileDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QCS
}
else
{
ml->writeDeclarations(ol,0,0,this,0,title,0);
ml->writeDeclarations(ol,0,0,this,0,title,0,definitionType());
}
}
}
......
......@@ -21,6 +21,8 @@
class CodeOutputInterface;
class FileDef;
class MemberDef;
class QCString;
class Definition;
void parseFortranCode(CodeOutputInterface &,const char *,const QCString &,
bool ,const char *,FileDef *fd,
......
......@@ -368,16 +368,14 @@ static void writeMultiLineCodeLink(CodeOutputInterface &ol,
}
}
static const char* fileLocation()
static QCString fileLocation()
{
const int maxLen=4096;
static char floc[maxLen+1];
floc[maxLen]='\0';
snprintf(floc,maxLen,"%s:%d:%d",g_sourceFileDef?g_sourceFileDef->absFilePath().data():"[unknown]",g_yyLineNr,1);
return floc;
QCString result = g_sourceFileDef?g_sourceFileDef->absFilePath():QCString("[unknown]");
result+=":"+QCString().setNum(g_yyLineNr);
result+=":"+QCString().setNum(1);
return result;
}
/**
generates dictionay entries that are used if REFERENCED_BY_RELATION ... options are set
(e.g. the "referenced by ..." list after the function documentation)
......@@ -558,8 +556,6 @@ static bool getLink(UseSDict *usedict, // dictonary with used modules
{
addDocCrossReference(g_currentMemberDef,md);
}
ol.linkableSymbol(g_yyLineNr,md->name(),md,
g_currentMemberDef ? g_currentMemberDef : g_currentDefinition);
writeMultiLineCodeLink(ol,md->getReference(),
md->getOutputFileBase(),
md->anchor(),
......@@ -588,7 +584,6 @@ static void generateLink(CodeOutputInterface &ol, char *lname)
}
else
{ // write type or interface link
ol.linkableSymbol(g_yyLineNr, tmp, cd, g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),cd->anchor(),tmp);
addToSearchIndex(tmp.data());
}
......@@ -601,7 +596,6 @@ static void generateLink(CodeOutputInterface &ol, char *lname)
else
{
// nothing found, just write out the word
ol.linkableSymbol(g_yyLineNr, tmp, 0, g_currentMemberDef?g_currentMemberDef:g_currentDefinition);
//startFontClass("charliteral"); //test
codifyLines(tmp);
//endFontClass(); //test
......
......@@ -893,11 +893,13 @@ protected {
pushBuffer(inputStringSemi);
}
<Initialization,ArrayInitializer>"[" |
<Initialization,ArrayInitializer>"(/" { initializer+=yytext;
initializerArrayScope++;
BEGIN(ArrayInitializer); // initializer may contain comma
}
<ArrayInitializer>"/)" { initializer+=yytext;
<ArrayInitializer>"]" |
<ArrayInitializer>"/)" { initializer+=yytext;
initializerArrayScope--;
if(initializerArrayScope<=0)
{
......
......@@ -1465,7 +1465,7 @@ void GroupDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QC
}
if (ml)
{
ml->writeDeclarations(ol,0,0,0,this,title,0);
ml->writeDeclarations(ol,0,0,0,this,title,0,definitionType());
}
}
......
......@@ -15,6 +15,9 @@
#ifndef _HTMLATTRIB_H
#define _HTMLATTRIB_H
#include <qcstring.h>
#include <qlist.h>
/*! A Html option. A name, value pair */
struct HtmlAttrib
{
......
......@@ -1278,7 +1278,7 @@ void HtmlCodeGenerator::codify(const char *str)
m_t << "\\";
m_col++;
break;
default: m_t << c;
default: p=writeUtf8Char(m_t,p-1);
m_col++;
break;
}
......@@ -1403,11 +1403,6 @@ void HtmlCodeGenerator::writeCodeAnchor(const char *anchor)
if (m_streamSet) m_t << "<a name=\"" << anchor << "\"></a>";
}
void HtmlCodeGenerator::linkableSymbol(int,const char *,Definition *,Definition *)
{
}
//--------------------------------------------------------------------------
HtmlGenerator::HtmlGenerator() : OutputGenerator()
......
......@@ -47,7 +47,6 @@ class HtmlCodeGenerator : public CodeOutputInterface
void startFontClass(const char *s);
void endFontClass();
void writeCodeAnchor(const char *anchor);
void linkableSymbol(int,const char *,Definition *,Definition *);
void setCurrentDoc(Definition *,const char *,bool) {}
void addWord(const char *,bool) {}
......@@ -109,9 +108,6 @@ class HtmlGenerator : public OutputGenerator
{ m_codeGen.endFontClass(); }
void writeCodeAnchor(const char *anchor)
{ m_codeGen.writeCodeAnchor(anchor); }
void linkableSymbol(int line,const char *symName,
Definition *symDef,Definition *context)
{ m_codeGen.linkableSymbol(line,symName,symDef,context); }
// ---------------------------
void setCurrentDoc(Definition *context,const char *anchor,bool isSourceFile);
......
......@@ -22,6 +22,7 @@
#define HTMLHELP_H
#include <qstrlist.h>
#include <qdict.h>
#include "index.h"
#include "ftextstream.h"
......
......@@ -339,7 +339,7 @@ bool setTranslator(const char *langName)
#ifdef LANG_UA
else if (L_EQUAL("ukrainian"))
{
theTranslator=new TranslatorDecoder(new TranslatorUkrainian);
theTranslator=new TranslatorUkrainian;
}
#endif
#ifdef LANG_GR
......
......@@ -15,6 +15,7 @@
* input used in their production; they are not affected by this license.
*
*/
#include "htmlattrib.h"
#include <qfileinfo.h>
#include "latexdocvisitor.h"
#include "docparser.h"
......@@ -26,7 +27,6 @@
#include "message.h"
#include "parserintf.h"
#include "msc.h"
#include "htmlattrib.h"
#include "cite.h"
#include "filedef.h"
#include "config.h"
......
This diff is collapsed.
......@@ -267,7 +267,6 @@ class LatexGenerator : public OutputGenerator
void endFontClass(); // {}
void writeCodeAnchor(const char *) {}
void linkableSymbol(int,const char *,Definition *,Definition *) {}
void setCurrentDoc(Definition *,const char *,bool) {}
void addWord(const char *,bool) {}
......
......@@ -19,6 +19,7 @@ CONFIG = console warn_on staticlib $extraopts
HEADERS = arguments.h \
bufstr.h \
cite.h \
clangparser.h \
classdef.h \
classlist.h \
cmdmapper.h \
......@@ -179,6 +180,7 @@ SOURCES = arguments.cpp \
ce_lex.cpp \
ce_parse.cpp \
cite.cpp \
clangparser.cpp \
classdef.cpp \
classlist.cpp \
cmdmapper.cpp \
......
......@@ -313,7 +313,7 @@ void ManGenerator::codify(const char *str)
case '\n': t << "\n"; firstCol=TRUE; col=0; break;
case '\\': t << "\\"; col++; break;
case '\"': c = '\''; // no break!
default: t << c; firstCol=FALSE; col++; break;
default: p=writeUtf8Char(t,p-1); firstCol=FALSE; col++; break;
}
}
//printf("%s",str);fflush(stdout);
......
......@@ -256,7 +256,6 @@ class ManGenerator : public OutputGenerator
void endLabels();
void writeCodeAnchor(const char *) {}
void linkableSymbol(int,const char *,Definition *,Definition *) {}
void setCurrentDoc(Definition *,const char *,bool) {}
void addWord(const char *,bool) {}
......
This diff is collapsed.
......@@ -391,6 +391,7 @@ void marshalEntry(StorageIntf *s,Entry *e)
marshalBool(s,e->hidden);
marshalBool(s,e->artificial);
marshalInt(s,(int)e->groupDocType);
marshalQCString(s,e->id);
}
void marshalEntryTree(StorageIntf *s,Entry *e)
......@@ -768,6 +769,7 @@ Entry * unmarshalEntry(StorageIntf *s)
e->hidden = unmarshalBool(s);
e->artificial = unmarshalBool(s);
e->groupDocType = (Entry::GroupDocType)unmarshalInt(s);
e->id = unmarshalQCString(s);
return e;
}
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -56,11 +56,12 @@ class MemberList : public QList<MemberDef>
void countDocMembers(bool countEnumValues=FALSE);
int countInheritableMembers(ClassDef *inheritedFrom) const;
void writePlainDeclarations(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,
GroupDef *gd,const DefinitionIntf::DefType compoundType,
ClassDef *inheritedFrom,const char *inheritId);
void writeDeclarations(OutputList &ol,
ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
const char *title,const char *subtitle,
const char *title,const char *subtitle,const DefinitionIntf::DefType compoundType,
bool showEnumValues=FALSE,bool showInline=FALSE,
ClassDef *inheritedFrom=0);
void writeDocumentation(OutputList &ol,const char *scopeName,
......
......@@ -965,7 +965,7 @@ MemberList *NamespaceDef::getMemberList(MemberListType lt) const
void NamespaceDef::writeMemberDeclarations(OutputList &ol,MemberListType lt,const QCString &title)
{
MemberList * ml = getMemberList(lt);
if (ml) ml->writeDeclarations(ol,0,this,0,0,title,0);
if (ml) ml->writeDeclarations(ol,0,this,0,0,title,0,DefinitionIntf::TypeNamespace);
}
void NamespaceDef::writeMemberDocumentation(OutputList &ol,MemberListType lt,const QCString &title)
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment