Blame src/doxygen.h

Packit 1c1d7e
/******************************************************************************
Packit 1c1d7e
 *
Packit 1c1d7e
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Permission to use, copy, modify, and distribute this software and its
Packit 1c1d7e
 * documentation under the terms of the GNU General Public License is hereby
Packit 1c1d7e
 * granted. No representations are made about the suitability of this software
Packit 1c1d7e
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit 1c1d7e
 * See the GNU General Public License for more details.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Documents produced by Doxygen are derivative works derived from the
Packit 1c1d7e
 * input used in their production; they are not affected by this license.
Packit 1c1d7e
 *
Packit 1c1d7e
 */
Packit 1c1d7e
Packit 1c1d7e
#ifndef DOXYGEN_H
Packit 1c1d7e
#define DOXYGEN_H
Packit 1c1d7e
Packit 1c1d7e
#include <qdatetime.h>
Packit 1c1d7e
#include <qcache.h>
Packit 1c1d7e
#include <qstrlist.h>
Packit 1c1d7e
#include <qdict.h>
Packit 1c1d7e
#include <qintdict.h>
Packit 1c1d7e
Packit 1c1d7e
#include "ftextstream.h"
Packit 1c1d7e
#include "sortdict.h"
Packit 1c1d7e
#include "membergroup.h"
Packit 1c1d7e
#include "dirdef.h"
Packit 1c1d7e
#include "memberlist.h"
Packit 1c1d7e
Packit 1c1d7e
class RefList;
Packit 1c1d7e
class PageSList;
Packit 1c1d7e
class PageSDict;
Packit 1c1d7e
class PageDef;
Packit 1c1d7e
class SearchIndexIntf;
Packit 1c1d7e
class ParserManager;
Packit 1c1d7e
class ObjCache;
Packit 1c1d7e
class Store;
Packit 1c1d7e
class QFileInfo;
Packit 1c1d7e
class BufStr;
Packit 1c1d7e
class CiteDict;
Packit 1c1d7e
class MemberDef;
Packit 1c1d7e
class GroupDef;
Packit 1c1d7e
class GroupSDict;
Packit 1c1d7e
class FileDef;
Packit 1c1d7e
class ClassDef;
Packit 1c1d7e
class ClassSDict;
Packit 1c1d7e
class GenericsSDict;
Packit 1c1d7e
class MemberNameSDict;
Packit 1c1d7e
class FileNameDict;
Packit 1c1d7e
class FileNameList;
Packit 1c1d7e
class NamespaceSDict;
Packit 1c1d7e
class NamespaceDef;
Packit 1c1d7e
class DefinitionIntf;
Packit 1c1d7e
class DirSDict;
Packit 1c1d7e
class DirRelation;
Packit 1c1d7e
class IndexList;
Packit 1c1d7e
class FormulaList;
Packit 1c1d7e
class FormulaDict;
Packit 1c1d7e
class FormulaNameDict;
Packit 1c1d7e
class SectionDict;
Packit 1c1d7e
struct MemberGroupInfo;
Packit 1c1d7e
Packit 1c1d7e
typedef QList<QCString>    StringList;
Packit 1c1d7e
typedef QListIterator<QCString>    StringListIterator;
Packit 1c1d7e
//typedef QDict<FileDef>     FileDict;
Packit 1c1d7e
//typedef QDict<GroupDef>    GroupDict;
Packit 1c1d7e
Packit 1c1d7e
class StringDict : public QDict<QCString>
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    StringDict(uint size=17) : QDict<QCString>(size) {}
Packit 1c1d7e
    virtual ~StringDict() {}
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
struct LookupInfo
Packit 1c1d7e
{
Packit 1c1d7e
  LookupInfo() : classDef(0), typeDef(0) {}
Packit 1c1d7e
  LookupInfo(ClassDef *cd,MemberDef *td,QCString ts,QCString rt)
Packit 1c1d7e
    : classDef(cd), typeDef(td), templSpec(ts),resolvedType(rt) {}
Packit 1c1d7e
  ClassDef  *classDef;
Packit 1c1d7e
  MemberDef *typeDef;
Packit 1c1d7e
  QCString   templSpec;
Packit 1c1d7e
  QCString   resolvedType;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
extern QCString g_spaces;
Packit 1c1d7e
Packit 1c1d7e
/*! \brief This class serves as a namespace for global variables used by doxygen.
Packit 1c1d7e
 *
Packit 1c1d7e
 *  All fields in this class are public and static, so they can be used directly.
Packit 1c1d7e
 */
Packit 1c1d7e
class Doxygen
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    static ClassSDict               *classSDict;
Packit 1c1d7e
    static ClassSDict               *hiddenClasses;
Packit 1c1d7e
    static PageSDict                *exampleSDict;
Packit 1c1d7e
    static PageSDict                *pageSDict;
Packit 1c1d7e
    static PageDef                  *mainPage;
Packit 1c1d7e
    static bool                      insideMainPage;
Packit 1c1d7e
    static FileNameDict             *includeNameDict;
Packit 1c1d7e
    static FileNameDict             *exampleNameDict;
Packit 1c1d7e
    static QDict<void>               inputPaths;
Packit 1c1d7e
    static FileNameDict             *inputNameDict;
Packit 1c1d7e
    static FileNameList             *inputNameList;
Packit 1c1d7e
    static FileNameDict             *imageNameDict;
Packit 1c1d7e
    static FileNameDict             *dotFileNameDict;
Packit 1c1d7e
    static FileNameDict             *mscFileNameDict;
Packit 1c1d7e
    static FileNameDict             *diaFileNameDict;
Packit 1c1d7e
    static QStrList                  tagfileList;
Packit 1c1d7e
    static MemberNameSDict          *memberNameSDict;
Packit 1c1d7e
    static MemberNameSDict          *functionNameSDict;
Packit 1c1d7e
    static SectionDict              *sectionDict;
Packit 1c1d7e
    static StringDict                namespaceAliasDict;
Packit 1c1d7e
    static GroupSDict               *groupSDict;
Packit 1c1d7e
    static NamespaceSDict           *namespaceSDict;
Packit 1c1d7e
    static FormulaList              *formulaList;
Packit 1c1d7e
    static FormulaDict              *formulaDict;
Packit 1c1d7e
    static FormulaDict              *formulaNameDict;
Packit 1c1d7e
    static StringDict                tagDestinationDict;
Packit 1c1d7e
    static StringDict                aliasDict;
Packit 1c1d7e
    static QIntDict<MemberGroupInfo> memGrpInfoDict;
Packit 1c1d7e
    static QDict<void>               expandAsDefinedDict;
Packit 1c1d7e
    static NamespaceDef             *globalScope;
Packit 1c1d7e
    static QDict<RefList>           *xrefLists; // array of xref lists: todo, test, bug, deprecated ...
Packit 1c1d7e
    static QCString                  htmlFileExtension;
Packit 1c1d7e
    static bool                      parseSourcesNeeded;
Packit 1c1d7e
    static QTime                     runningTime;
Packit 1c1d7e
    static SearchIndexIntf          *searchIndex;
Packit 1c1d7e
    static QDict<DefinitionIntf>    *symbolMap;
Packit 1c1d7e
    static QDict<Definition>        *clangUsrMap;
Packit 1c1d7e
    static bool                      outputToWizard;
Packit 1c1d7e
    static QDict<int>               *htmlDirMap;
Packit 1c1d7e
    static QCache<LookupInfo>       *lookupCache;
Packit 1c1d7e
    static DirSDict                 *directories;
Packit 1c1d7e
    static SDict<DirRelation>        dirRelations;
Packit 1c1d7e
    static ParserManager            *parserManager;
Packit 1c1d7e
    static bool                      suppressDocWarnings;
Packit 1c1d7e
    static Store                    *symbolStorage;
Packit 1c1d7e
    static QCString                  objDBFileName;
Packit 1c1d7e
    static QCString                  entryDBFileName;
Packit 1c1d7e
    static CiteDict                 *citeDict;
Packit 1c1d7e
    static bool                      gatherDefines;
Packit 1c1d7e
    static bool                      userComments;
Packit 1c1d7e
    static IndexList                *indexList;
Packit 1c1d7e
    static int                       subpageNestingLevel;
Packit 1c1d7e
    static QCString                  spaces;
Packit 1c1d7e
    static bool                      generatingXmlOutput;
Packit 1c1d7e
    static bool                      markdownSupport;
Packit 1c1d7e
    static GenericsSDict            *genericsDict;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
void initDoxygen();
Packit 1c1d7e
void readConfiguration(int argc, char **argv);
Packit 1c1d7e
void checkConfiguration();
Packit 1c1d7e
void adjustConfiguration();
Packit 1c1d7e
void searchInputFiles(StringList &inputFiles);
Packit 1c1d7e
void parseInput();
Packit 1c1d7e
void generateOutput();
Packit 1c1d7e
void readAliases();
Packit 1c1d7e
void readFormulaRepository();
Packit 1c1d7e
void cleanUpDoxygen();
Packit 1c1d7e
int readFileOrDirectory(const char *s,
Packit 1c1d7e
                        FileNameList *fnList,
Packit 1c1d7e
                        FileNameDict *fnDict,
Packit 1c1d7e
                        StringDict *exclDict,
Packit 1c1d7e
                        QStrList *patList,
Packit 1c1d7e
                        QStrList *exclPatList,
Packit 1c1d7e
                        StringList *resultList,
Packit 1c1d7e
                        StringDict *resultDict,
Packit 1c1d7e
                        bool recursive,
Packit 1c1d7e
                        bool errorIfNotExist=TRUE,
Packit 1c1d7e
                        QDict<void> *killDict = 0,
Packit 1c1d7e
                        QDict<void> *paths = 0
Packit 1c1d7e
                       );
Packit 1c1d7e
int readDir(QFileInfo *fi,
Packit 1c1d7e
            FileNameList *fnList,
Packit 1c1d7e
            FileNameDict *fnDict,
Packit 1c1d7e
            StringDict  *exclDict,
Packit 1c1d7e
            QStrList *patList,
Packit 1c1d7e
            QStrList *exclPatList,
Packit 1c1d7e
            StringList *resultList,
Packit 1c1d7e
            StringDict *resultDict,
Packit 1c1d7e
            bool errorIfNotExist,
Packit 1c1d7e
            bool recursive,
Packit 1c1d7e
            QDict<void> *killDict
Packit 1c1d7e
           );
Packit 1c1d7e
void copyAndFilterFile(const char *fileName,BufStr &dest);
Packit 1c1d7e
Packit 1c1d7e
#endif