10889 if (outputDirectory.
isEmpty())
10899 if (!
dir.mkdir(outputDirectory))
10901 err(
"tag OUTPUT_DIRECTORY: Output directory `%s' does not " 10902 "exist and cannot be created\n",outputDirectory.
data());
10908 msg(
"Notice: Output directory `%s' does not exist. " 10909 "I have created it for you.\n", outputDirectory.
data());
10911 dir.cd(outputDirectory);
10913 outputDirectory=
dir.absPath().utf8();
10924 if (cacheSize<0) cacheSize=0;
10925 if (cacheSize>9) cacheSize=9;
10926 uint lookupSize = 65536 << cacheSize;
10959 if (generateDocbook)
10997 newFontPath+=curFontPath;
11015 bool defaultLayoutUsed =
FALSE;
11016 if (layoutFileName.
isEmpty())
11018 layoutFileName =
"DoxygenLayout.xml";
11019 defaultLayoutUsed =
TRUE;
11022 QFile layoutFile(layoutFileName);
11025 msg(
"Parsing layout file %s...\n",layoutFileName.
data());
11030 else if (!defaultLayoutUsed)
11032 warn_uncond(
"failed to open layout file '%s' for reading!\n",layoutFileName.
data());
11041 if (generateHtml) exclPatterns.append(htmlOutput);
11042 if (generateDocbook) exclPatterns.append(docbookOutput);
11043 if (generateXml) exclPatterns.append(xmlOutput);
11044 if (generateLatex) exclPatterns.append(latexOutput);
11045 if (generateRtf) exclPatterns.append(rtfOutput);
11046 if (generateMan) exclPatterns.append(manOutput);
11065 err(
"Failed to create temporary storage file %s\n",
11072 msg(
"Reading and parsing tag files\n");
11075 char *
s=tagFileList.
first();
11080 s=tagFileList.
next();
11105 err(
"Failed to open temporary storage file %s for reading",
11114 g_s.
begin(
"Building group list...\n");
11119 g_s.
begin(
"Building directory list...\n");
11124 g_s.
begin(
"Building namespace list...\n");
11129 g_s.
begin(
"Building file list...\n");
11134 g_s.
begin(
"Building class list...\n");
11138 g_s.
begin(
"Associating documentation with classes...\n");
11145 g_s.
begin(
"Computing nesting relations for classes...\n");
11158 g_s.
begin(
"Building example list...\n");
11162 g_s.
begin(
"Searching for enumerations...\n");
11170 g_s.
begin(
"Searching for documented typedefs...\n");
11174 g_s.
begin(
"Searching for members imported via using declarations...\n");
11181 g_s.
begin(
"Searching for included using directives...\n");
11185 g_s.
begin(
"Searching for documented variables...\n");
11189 g_s.
begin(
"Building interface member list...\n");
11192 g_s.
begin(
"Building member list...\n");
11196 g_s.
begin(
"Searching for friends...\n");
11200 g_s.
begin(
"Searching for documented defines...\n");
11204 g_s.
begin(
"Computing class inheritance relations...\n");
11209 g_s.
begin(
"Computing class usage relations...\n");
11215 g_s.
begin(
"Searching for tag less structs...\n");
11220 g_s.
begin(
"Flushing cached template relations that have become invalid...\n");
11224 g_s.
begin(
"Creating members for template instances...\n");
11228 g_s.
begin(
"Computing class relations...\n");
11239 g_s.
begin(
"Add enum values to enums...\n");
11244 g_s.
begin(
"Searching for member function documentation...\n");
11252 g_s.
begin(
"Building page list...\n");
11256 g_s.
begin(
"Search for main page...\n");
11261 g_s.
begin(
"Computing page relations...\n");
11266 g_s.
begin(
"Determining the scope of groups...\n");
11277 msg(
"Freeing entry tree\n");
11286 g_s.
begin(
"Determining which enums are documented\n");
11290 g_s.
begin(
"Computing member relations...\n");
11295 g_s.
begin(
"Building full member lists recursively...\n");
11299 g_s.
begin(
"Adding members to member groups.\n");
11305 g_s.
begin(
"Distributing member group documentation.\n");
11310 g_s.
begin(
"Computing member references...\n");
11316 g_s.
begin(
"Inheriting documentation...\n");
11323 g_s.
begin(
"Generating disk names...\n");
11327 g_s.
begin(
"Adding source references...\n");
11331 g_s.
begin(
"Adding xrefitems...\n");
11336 g_s.
begin(
"Sorting member lists...\n");
11342 g_s.
begin(
"Computing dependencies between directories...\n");
11350 g_s.
begin(
"Generating citations page...\n");
11354 g_s.
begin(
"Counting data structures...\n");
11358 g_s.
begin(
"Resolving user defined references...\n");
11362 g_s.
begin(
"Finding anchors and sections in the documentation...\n");
11366 g_s.
begin(
"Transferring function references...\n");
11370 g_s.
begin(
"Combining using relations...\n");
11374 g_s.
begin(
"Adding members to index pages...\n");
Traverses directory structures and contents in a platform-independent way.
static void findGroupScope(EntryNav *rootNav)
static CiteDict * citeDict
static MemberNameSDict * functionNameSDict
static void transferFunctionReferences()
void begin(const char *name)
static void addSourceReferences()
static void createTemplateInstanceMembers()
void setName(const char *name)
virtual bool remove(const QString &fileName, bool acceptAbsPath=TRUE)
static void mergeCategories()
static void computeMemberReferences()
static void buildExampleList(EntryNav *rootNav)
void msg(const char *fmt,...)
static void sortMemberLists()
static ClassSDict * hiddenClasses
static void parseFiles(Entry *root, EntryNav *rootNav)
parse the list of input files
const char * portable_getenv(const char *variable)
static void buildFileList(EntryNav *rootNav)
static Store * symbolStorage
static void buildClassList(EntryNav *rootNav)
int open(const char *, int)
Opens a file descriptor.
void readFormulaRepository()
static void resolveUserReferences()
static FileNameList * inputNameList
static void transferFunctionDocumentation()
static LayoutDocManager & instance()
static void buildVarList(EntryNav *rootNav)
static void flushCachedTemplateRelations()
Store implementation based on a file. Writing is linear, after that the file is re-opened for reading...
#define Config_getList(val)
static void findDirDocumentation(EntryNav *rootNav)
static void resolveClassNestingRelations()
static void stopDoxygen(int)
static void combineUsingRelations()
void parse(QTextStream &t, const char *fileName)
static QDict< EntryNav > g_classEntries(1009)
static void inheritDocumentation()
static void buildTypedefList(EntryNav *rootNav)
static void transferRelatedFunctionDocumentation()
#define Config_getInt(val)
static void buildNamespaceList(EntryNav *rootNav)
void computeDirDependencies()
static void readTagFile(Entry *root, const char *tl)
static void findMainPage(EntryNav *rootNav)
static void addSTLClasses(EntryNav *rootNav)
static void findDefineDocumentation(EntryNav *rootNav)
static void findInheritedTemplateInstances()
static void addMembersToMemberGroup()
static void findIncludedUsingDirectives()
static void computeClassRelations()
static void findEnumDocumentation(EntryNav *rootNav)
static void findSectionsInDocumentation()
static void findDocumentedEnumValues()
The Store is a file based memory manager.
static QCString objDBFileName
static void addListReferences()
static QString currentDirPath()
static void findClassEntries(EntryNav *rootNav)
static void distributeMemberGroupDocumentation()
QCString & prepend(const char *s)
const char * data() const
static void generateXRefPages()
char portable_pathListSeparator()
static void buildClassDocList(EntryNav *rootNav)
#define Config_getString(val)
#define Config_getBool(val)
void generatePage() const
void countDataStructures()
void err(const char *fmt,...)
static void buildPageList(EntryNav *rootNav)
static void computeMemberRelations()
static void computeTemplateClassRelations()
static FileStorage * g_storage
static void exitDoxygen()
static void buildGroupList(EntryNav *rootNav)
static void organizeSubGroups(EntryNav *rootNav)
The QFile class is an I/O device that operates on files.
void setAutoDelete(bool enable)
QCString & sprintf(const char *format,...)
static void findMemberDocumentation(EntryNav *rootNav)
static void buildInterfaceAndServiceList(EntryNav *const rootNav)
static void findFriends()
static void buildListOfUsingDecls(EntryNav *rootNav)
The QTextStream class provides basic functions for reading and writing text using a QIODevice...
void portable_setenv(const char *name, const char *value)
static void findMainPageTagFiles(EntryNav *rootNav)
static void findUsingDeclarations(EntryNav *rootNav)
static void findTagLessClasses(ClassDef *cd)
static void findUsingDirectives(EntryNav *rootNav)
static QCString entryDBFileName
static MemberNameSDict * memberNameSDict
static void findUsedTemplateInstances()
static void addMembersToIndex()
static void buildCompleteMemberLists()
static bool g_useOutputTemplate
static QCString createOutputDirectory(const QCString &baseDirName, const char *formatDirOption, const char *defaultDirName)
static QDict< FileDef > g_usingDeclarations(1009)
static void computeVhdlComponentRelations()
static QCache< LookupInfo > * lookupCache
static void findObjCMethodDefinitions(EntryNav *rootNav)
void createNavigationIndex(EntryNav *rootNav, FileStorage *storage, FileDef *fd)
static void findUsingDeclImports(EntryNav *rootNav)
static void checkPageRelations()
static void findEnums(EntryNav *rootNav)
static ClassSDict * classSDict
static void addEnumValuesToEnums(EntryNav *rootNav)
static void buildFunctionList(EntryNav *rootNav)
static void flushUnresolvedRelations()
static void computePageRelations(EntryNav *rootNav)
void warn_uncond(const char *fmt,...)