summaryrefslogtreecommitdiffstats
path: root/trunk/addon/doxyapp
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2012-03-22 19:19:06 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2012-03-22 19:19:06 (GMT)
commite620712c9dd41c56bbd56d16a5a3469b96fafbf0 (patch)
tree2a7451abfd771d43ea2b3ac2443d94c3eb5cfee7 /trunk/addon/doxyapp
parent8f455b66da9db238655242d1213c05affac412d9 (diff)
downloadDoxygen-e620712c9dd41c56bbd56d16a5a3469b96fafbf0.zip
Doxygen-e620712c9dd41c56bbd56d16a5a3469b96fafbf0.tar.gz
Doxygen-e620712c9dd41c56bbd56d16a5a3469b96fafbf0.tar.bz2
Created accidentallyRelease_1_8_0
Diffstat (limited to 'trunk/addon/doxyapp')
-rw-r--r--trunk/addon/doxyapp/Makefile.in17
-rw-r--r--trunk/addon/doxyapp/README8
-rw-r--r--trunk/addon/doxyapp/doxyapp.cpp314
-rw-r--r--trunk/addon/doxyapp/doxyapp.pro.in12
4 files changed, 0 insertions, 351 deletions
diff --git a/trunk/addon/doxyapp/Makefile.in b/trunk/addon/doxyapp/Makefile.in
deleted file mode 100644
index c5acd67..0000000
--- a/trunk/addon/doxyapp/Makefile.in
+++ /dev/null
@@ -1,17 +0,0 @@
-
-all clean depend distclean: Makefile.doxyapp
- $(MAKE) -f Makefile.doxyapp $@
-
-distclean: clean
- $(RM) -rf Makefile doxyapp.pro Makefile.doxyapp
-
-tmake:
- $(ENV) $(PERL) $(TMAKE) doxyapp.pro >Makefile.doxyapp
-
-strip:
- strip doxyapp
-
-Makefile.doxyapp: doxyapp.pro
- $(ENV) $(PERL) $(TMAKE) doxyapp.pro >Makefile.doxyapp
-
-install:
diff --git a/trunk/addon/doxyapp/README b/trunk/addon/doxyapp/README
deleted file mode 100644
index f92e106..0000000
--- a/trunk/addon/doxyapp/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This directory contains an example of how to use doxygen as
-an "source parsing engine" in an application. It shows how to configure doxygen
-from the application and shows how to run doxygen without generating output,
-and then uses the information about the symbols found in the source code.
-
-Note that if you use this approach your application should be licensed under the GPL.
-
-
diff --git a/trunk/addon/doxyapp/doxyapp.cpp b/trunk/addon/doxyapp/doxyapp.cpp
deleted file mode 100644
index ffee3c7..0000000
--- a/trunk/addon/doxyapp/doxyapp.cpp
+++ /dev/null
@@ -1,314 +0,0 @@
-/******************************************************************************
- *
- * Copyright (C) 1997-2012 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.
- *
- */
-
-/** @file
- * @brief Example of how to use doxygen as part of another GPL applications
- *
- * This example shows how to configure and run doxygen programmatically from
- * within an application without generating the usual output.
- * The example should work on any Unix like OS (including Linux and Mac OS X).
- *
- * This example shows how to use to code parser to get cross-references information
- * and it also shows how to look up symbols in a program parsed by doxygen and
- * show some information about them.
- */
-
-#include <stdlib.h>
-#include <unistd.h>
-#include "doxygen.h"
-#include "outputgen.h"
-#include "parserintf.h"
-
-class XRefDummyCodeGenerator : public CodeOutputInterface
-{
- public:
- XRefDummyCodeGenerator(FileDef *fd) : m_fd(fd) {}
- ~XRefDummyCodeGenerator() {}
-
- // these are just null functions, they can be used to produce a syntax highlighted
- // and cross-linked version of the source code, but who needs that anyway ;-)
- void codify(const char *) {}
- void writeCodeLink(const char *,const char *,const char *,const char *,const char *) {}
- void startCodeLine() {}
- void endCodeLine() {}
- void startCodeAnchor(const char *) {}
- void endCodeAnchor() {}
- void startFontClass(const char *) {}
- void endFontClass() {}
- void writeCodeAnchor(const char *) {}
- void writeLineNumber(const char *,const char *,const char *,int) {}
-
- // here we are presented with the symbols found by the code parser
- void linkableSymbol(int l, const char *sym,Definition *symDef,Definition *context)
- {
- QCString ctx;
- if (context) // the context of the symbol is known
- {
- if (context->definitionType()==Definition::TypeMember) // it is inside a member
- {
- Definition *parentContext = context->getOuterScope();
- if (parentContext && parentContext->definitionType()==Definition::TypeClass)
- // it is inside a member of a class
- {
- ctx.sprintf("inside %s %s of %s %s",
- ((MemberDef *)context)->memberTypeName().data(),
- context->name().data(),
- ((ClassDef*)parentContext)->compoundTypeString().data(),
- parentContext->name().data());
- }
- else if (parentContext==Doxygen::globalScope) // it is inside a global member
- {
- ctx.sprintf("inside %s %s",
- ((MemberDef *)context)->memberTypeName().data(),
- context->name().data());
- }
- }
- if (ctx.isEmpty()) // it is something else (class, or namespace member, ...)
- {
- ctx.sprintf("in %s",context->name().data());
- }
- }
- printf("Found symbol %s at line %d of %s %s\n",
- sym,l,m_fd->getDefFileName().data(),ctx.data());
- if (symDef && context) // in this case the definition of the symbol is
- // known to doxygen.
- {
- printf("-> defined at line %d of %s\n",
- symDef->getDefLine(),symDef->getDefFileName().data());
- }
- }
- private:
- FileDef *m_fd;
-};
-
-static void findXRefSymbols(FileDef *fd)
-{
- // get the interface to a parser that matches the file extension
- ParserInterface *pIntf=Doxygen::parserManager->getParser(fd->getDefFileExtension());
-
- // reset the parsers state
- pIntf->resetCodeParserState();
-
- // create a new backend object
- XRefDummyCodeGenerator *xrefGen = new XRefDummyCodeGenerator(fd);
-
- // parse the source code
- pIntf->parseCode(*xrefGen,
- 0,
- fileToString(fd->absFilePath()),
- FALSE,
- 0,
- fd);
-
- // dismiss the object.
- delete xrefGen;
-}
-
-static void listSymbol(Definition *d)
-{
- if (d!=Doxygen::globalScope && // skip the global namespace symbol
- d->name().at(0)!='@' // skip anonymous stuff
- )
- {
- printf("%s\n",
- d->name().data());
- }
-}
-
-static void listSymbols()
-{
- QDictIterator<DefinitionIntf> sli(*Doxygen::symbolMap);
- DefinitionIntf *di;
- for (sli.toFirst();(di=sli.current());++sli)
- {
- if (di->definitionType()==DefinitionIntf::TypeSymbolList) // list of symbols
- // with same name
- {
- DefinitionListIterator dli(*(DefinitionList*)di);
- Definition *d;
- // for each symbol
- for (dli.toFirst();(d=dli.current());++dli)
- {
- listSymbol(d);
- }
- }
- else // single symbol
- {
- listSymbol((Definition*)di);
- }
- }
-}
-
-static void lookupSymbol(Definition *d)
-{
- if (d!=Doxygen::globalScope && // skip the global namespace symbol
- d->name().at(0)!='@' // skip anonymous stuff
- )
- {
- printf("Symbol info\n");
- printf("-----------\n");
- printf("Name: %s\n",d->name().data());
- printf("File: %s\n",d->getDefFileName().data());
- printf("Line: %d\n",d->getDefLine());
- // depending on the definition type we can case to the appropriate
- // derived to get additional information
- switch (d->definitionType())
- {
- case Definition::TypeClass:
- {
- ClassDef *cd = (ClassDef *)d;
- printf("Kind: %s\n",cd->compoundTypeString().data());
- }
- break;
- case Definition::TypeFile:
- {
- FileDef *fd = (FileDef *)d;
- printf("Kind: File: #includes %d other files\n",
- fd->includeFileList() ? fd->includeFileList()->count() : 0);
- }
- break;
- case Definition::TypeNamespace:
- {
- NamespaceDef *nd = (NamespaceDef *)d;
- printf("Kind: Namespace: contains %d classes and %d namespaces\n",
- nd->getClassSDict() ? nd->getClassSDict()->count() : 0,
- nd->getNamespaceSDict() ? nd->getNamespaceSDict()->count() : 0);
- }
- break;
- case Definition::TypeMember:
- {
- MemberDef *md = (MemberDef *)d;
- printf("Kind: %s\n",md->memberTypeName().data());
- }
- break;
- default:
- // ignore groups/pages/packages/dirs for now
- break;
- }
- }
-}
-
-static void lookupSymbols(const QCString &sym)
-{
- if (!sym.isEmpty())
- {
- DefinitionIntf *di = Doxygen::symbolMap->find(sym);
- if (di)
- {
- if (di->definitionType()==DefinitionIntf::TypeSymbolList)
- {
- DefinitionListIterator dli(*(DefinitionList*)di);
- Definition *d;
- // for each symbol with the given name
- for (dli.toFirst();(d=dli.current());++dli)
- {
- lookupSymbol(d);
- }
- }
- else
- {
- lookupSymbol((Definition*)di);
- }
- }
- else
- {
- printf("Unknown symbol\n");
- }
- }
-}
-
-int main(int argc,char **argv)
-{
- char cmd[256];
-
- if (argc<2)
- {
- printf("Usage: %s [source_file | source_dir]\n",argv[0]);
- exit(1);
- }
-
- // initialize data structures
- initDoxygen();
-
- // setup the non-default configuration options
-
- // we need a place to put intermediate files
- Config_getString("OUTPUT_DIRECTORY")="/tmp/doxygen";
- // disable html output
- Config_getBool("GENERATE_HTML")=FALSE;
- // disable latex output
- Config_getBool("GENERATE_LATEX")=FALSE;
- // be quiet
- Config_getBool("QUIET")=TRUE;
- // turn off warnings
- Config_getBool("WARNINGS")=FALSE;
- Config_getBool("WARN_IF_UNDOCUMENTED")=FALSE;
- Config_getBool("WARN_IF_DOC_ERROR")=FALSE;
- // Extract as much as possible
- Config_getBool("EXTRACT_ALL")=TRUE;
- Config_getBool("EXTRACT_STATIC")=TRUE;
- Config_getBool("EXTRACT_PRIVATE")=TRUE;
- Config_getBool("EXTRACT_LOCAL_METHODS")=TRUE;
- // Extract source browse information, needed
- // to make doxygen gather the cross reference info
- Config_getBool("SOURCE_BROWSER")=TRUE;
-
- // set the input
- Config_getList("INPUT").append(argv[1]);
-
- // check and finialize the configuration
- checkConfiguration();
- adjustConfiguration();
-
- // parse the files
- parseInput();
-
- // iterate over the input files
- FileNameListIterator fnli(*Doxygen::inputNameList);
- FileName *fn;
- // foreach file with a certain name
- for (fnli.toFirst();(fn=fnli.current());++fnli)
- {
- FileNameIterator fni(*fn);
- FileDef *fd;
- // for each file definition
- for (;(fd=fni.current());++fni)
- {
- // get the references (linked and unlinked) found in this file
- findXRefSymbols(fd);
- }
- }
-
- // remove temporary files
- if (!Doxygen::objDBFileName.isEmpty()) unlink(Doxygen::objDBFileName);
- if (!Doxygen::entryDBFileName.isEmpty()) unlink(Doxygen::entryDBFileName);
- // clean up after us
- rmdir("/tmp/doxygen");
-
- while (1)
- {
- printf("> Type a symbol name or\n> .list for a list of symbols or\n> .quit to exit\n> ");
- fgets(cmd,256,stdin);
- QCString s(cmd);
- if (s.at(s.length()-1)=='\n') s=s.left(s.length()-1); // strip trailing \n
- if (s==".list")
- listSymbols();
- else if (s==".quit")
- exit(0);
- else
- lookupSymbols(s);
- }
-}
-
diff --git a/trunk/addon/doxyapp/doxyapp.pro.in b/trunk/addon/doxyapp/doxyapp.pro.in
deleted file mode 100644
index 68fea3d..0000000
--- a/trunk/addon/doxyapp/doxyapp.pro.in
+++ /dev/null
@@ -1,12 +0,0 @@
-TEMPLATE = app.t
-CONFIG = console warn_on debug
-HEADERS =
-SOURCES = doxyapp.cpp
-LIBS += -L../../lib -L../../lib -ldoxygen -lqtools -lmd5 -ldoxycfg -lpng
-DESTDIR =
-OBJECTS_DIR = ../../objects
-TARGET = ../../bin/doxyapp
-INCLUDEPATH += ../../qtools ../../src
-DEPENDPATH += ../../src
-TARGETDEPS = ../../lib/libdoxygen.a
-