diff options
Diffstat (limited to 'src/qdoc/main.cpp')
-rw-r--r-- | src/qdoc/main.cpp | 366 |
1 files changed, 80 insertions, 286 deletions
diff --git a/src/qdoc/main.cpp b/src/qdoc/main.cpp index d8798b7cd..ea9dc6ed7 100644 --- a/src/qdoc/main.cpp +++ b/src/qdoc/main.cpp @@ -26,9 +26,17 @@ ** ****************************************************************************/ -#include <qglobal.h> -#include <qhashfunctions.h> +#include <algorithm> #include <stdlib.h> +#include <QtCore/qcommandlineoption.h> +#include <QtCore/qcommandlineparser.h> +#include <QtCore/qdatetime.h> +#include <QtCore/qdebug.h> +#include <QtCore/qglobal.h> +#include <QtCore/qglobalstatic.h> +#include <QtCore/qhashfunctions.h> + +#include "clangcodeparser.h" #include "codemarker.h" #include "codeparser.h" #include "config.h" @@ -36,27 +44,23 @@ #include "cppcodeparser.h" #include "doc.h" #include "htmlgenerator.h" -#include "loggingcategory.h" -#include "webxmlgenerator.h" +#include "jscodemarker.h" #include "location.h" +#include "loggingcategory.h" #include "puredocparser.h" -#include "tokenizer.h" -#include "tree.h" -#include "qdocdatabase.h" -#include "jscodemarker.h" #include "qmlcodemarker.h" #include "qmlcodeparser.h" -#include "clangcodeparser.h" -#include <qdatetime.h> -#include <qdebug.h> +#include "qdoccommandlineparser.h" +#include "qdocdatabase.h" +#include "qdocglobals.h" #include "qtranslator.h" +#include "tokenizer.h" +#include "tree.h" +#include "webxmlgenerator.h" + #ifndef QT_BOOTSTRAPPED # include "qcoreapplication.h" #endif -#include "qcommandlineoption.h" -#include "qcommandlineparser.h" -#include <qhashfunctions.h> -#include <algorithm> QT_BEGIN_NAMESPACE @@ -67,26 +71,13 @@ bool creationTimeBefore(const QFileInfo &fi1, const QFileInfo &fi2) return fi1.lastModified() < fi2.lastModified(); } -static bool highlighting = false; -static bool showInternal = false; -static bool singleExec = false; -static bool writeQaPages = false; -static bool redirectDocumentationToDevNull = false; -static bool noLinkErrors = false; -static bool autolinkErrors = false; -static bool obsoleteLinks = false; -static QStringList defines; -static QStringList includesPaths; -static QStringList dependModules; -static QStringList indexDirs; -static QString currentDir; -static QString prevCurrentDir; -static QHash<QString,QString> defaults; #ifndef QT_NO_TRANSLATION typedef QPair<QString, QTranslator*> Translator; static QList<Translator> translators; #endif -static ClangCodeParser* clangParser_ = 0; + +static ClangCodeParser* clangParser_ = nullptr; +static QDocGlobals qdocGlobals; /*! Read some XML indexes containing definitions from other @@ -110,8 +101,8 @@ static void loadIndexFiles(Config& config, const QSet<QString> &formats) Location::null.warning(QString("Index file not found: %1").arg(index)); } - dependModules += config.getStringList(CONFIG_DEPENDS); - dependModules.removeDuplicates(); + qdocGlobals.dependModules() += config.getStringList(CONFIG_DEPENDS); + qdocGlobals.dependModules().removeDuplicates(); QSet<QString> subDirs; for (const auto &format : formats) { @@ -125,41 +116,41 @@ static void loadIndexFiles(Config& config, const QSet<QString> &formats) } } - if (dependModules.size() > 0) { - if (indexDirs.size() > 0) { - for (int i = 0; i < indexDirs.size(); i++) { - if (indexDirs[i].startsWith("..")) { - const QString prefix(QDir(currentDir).relativeFilePath(prevCurrentDir)); + if (qdocGlobals.dependModules().size() > 0) { + if (qdocGlobals.indexDirs().size() > 0) { + for (int i = 0; i < qdocGlobals.indexDirs().size(); i++) { + if (qdocGlobals.indexDirs()[i].startsWith("..")) { + const QString prefix(QDir(qdocGlobals.currentDir()).relativeFilePath(qdocGlobals.previousCurrentDir())); if (!prefix.isEmpty()) - indexDirs[i].prepend(prefix + QLatin1Char('/')); + qdocGlobals.indexDirs()[i].prepend(prefix + QLatin1Char('/')); } } /* Add all subdirectories of the indexdirs as dependModules, when an asterisk is used in the 'depends' list. */ - if (dependModules.contains("*")) { - dependModules.removeOne("*"); - for (int i = 0; i < indexDirs.size(); i++) { - QDir scanDir = QDir(indexDirs[i]); + if (qdocGlobals.dependModules().contains("*")) { + qdocGlobals.dependModules().removeOne("*"); + for (int i = 0; i < qdocGlobals.indexDirs().size(); i++) { + QDir scanDir = QDir(qdocGlobals.indexDirs()[i]); scanDir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot); QFileInfoList dirList = scanDir.entryInfoList(); for (int j = 0; j < dirList.size(); j++) { if (dirList[j].fileName().toLower() != config.getString(CONFIG_PROJECT).toLower()) - dependModules.append(dirList[j].fileName()); + qdocGlobals.dependModules().append(dirList[j].fileName()); } } } - for (int i = 0; i < dependModules.size(); i++) { + for (int i = 0; i < qdocGlobals.dependModules().size(); i++) { QString indexToAdd; QList<QFileInfo> foundIndices; // Always look in module-specific subdir, even with *.nosubdirs config - subDirs << dependModules[i]; - for (int j = 0; j < indexDirs.size(); j++) { + subDirs << qdocGlobals.dependModules()[i]; + for (int j = 0; j < qdocGlobals.indexDirs().size(); j++) { for (const auto &subDir : subDirs) { - QString fileToLookFor = indexDirs[j] + QString fileToLookFor = qdocGlobals.indexDirs()[j] + QLatin1Char('/') + subDir - + QLatin1Char('/') + dependModules[i] + ".index"; + + QLatin1Char('/') + qdocGlobals.dependModules()[i] + ".index"; if (QFile::exists(fileToLookFor)) { QFileInfo tempFileInfo(fileToLookFor); if (!foundIndices.contains(tempFileInfo)) @@ -167,7 +158,7 @@ static void loadIndexFiles(Config& config, const QSet<QString> &formats) } } } - subDirs.remove(dependModules[i]); + subDirs.remove(qdocGlobals.dependModules()[i]); std::sort(foundIndices.begin(), foundIndices.end(), creationTimeBefore); if (foundIndices.size() > 1) { /* @@ -179,10 +170,10 @@ static void loadIndexFiles(Config& config, const QSet<QString> &formats) for (int k = 0; k < foundIndices.size(); k++) indexPaths << foundIndices[k].absoluteFilePath(); Location::null.warning(QString("Multiple index files found for dependency \"%1\":\n%2").arg( - dependModules[i], indexPaths.join('\n'))); + qdocGlobals.dependModules()[i], indexPaths.join('\n'))); Location::null.warning(QString("Using %1 as index file for dependency \"%2\"").arg( foundIndices[foundIndices.size() - 1].absoluteFilePath(), - dependModules[i])); + qdocGlobals.dependModules()[i])); indexToAdd = foundIndices[foundIndices.size() - 1].absoluteFilePath(); } else if (foundIndices.size() == 1) { @@ -194,7 +185,7 @@ static void loadIndexFiles(Config& config, const QSet<QString> &formats) } else { Location::null.warning(QString("\"%1\" Cannot locate index file for dependency \"%2\"").arg( - config.getString(CONFIG_PROJECT), dependModules[i])); + config.getString(CONFIG_PROJECT), qdocGlobals.dependModules()[i])); } } } @@ -224,19 +215,19 @@ static void processQdocconfFile(const QString &fileName) Config config(QCoreApplication::translate("QDoc", "qdoc")); QHash<QString,QString>::iterator iter; - for (iter = defaults.begin(); iter != defaults.end(); ++iter) + for (iter = qdocGlobals.defaults().begin(); iter != qdocGlobals.defaults().end(); ++iter) config.setStringList(iter.key(), QStringList() << iter.value()); - config.setStringList(CONFIG_SYNTAXHIGHLIGHTING, QStringList(highlighting ? "true" : "false")); - config.setStringList(CONFIG_SHOWINTERNAL, QStringList(showInternal ? "true" : "false")); - config.setStringList(CONFIG_SINGLEEXEC, QStringList(singleExec ? "true" : "false")); - config.setStringList(CONFIG_WRITEQAPAGES, QStringList(writeQaPages ? "true" : "false")); - config.setStringList(CONFIG_REDIRECTDOCUMENTATIONTODEVNULL, QStringList(redirectDocumentationToDevNull ? "true" : "false")); - config.setStringList(CONFIG_NOLINKERRORS, QStringList(noLinkErrors ? "true" : "false")); - config.setStringList(CONFIG_AUTOLINKERRORS, QStringList(autolinkErrors ? "true" : "false")); - config.setStringList(CONFIG_OBSOLETELINKS, QStringList(obsoleteLinks ? "true" : "false")); + config.setStringList(CONFIG_SYNTAXHIGHLIGHTING, QStringList(qdocGlobals.highlighting() ? "true" : "false")); + config.setStringList(CONFIG_SHOWINTERNAL, QStringList(qdocGlobals.showInternal() ? "true" : "false")); + config.setStringList(CONFIG_SINGLEEXEC, QStringList(qdocGlobals.singleExec() ? "true" : "false")); + config.setStringList(CONFIG_WRITEQAPAGES, QStringList(qdocGlobals.writeQaPages() ? "true" : "false")); + config.setStringList(CONFIG_REDIRECTDOCUMENTATIONTODEVNULL, QStringList(qdocGlobals.redirectDocumentationToDevNull() ? "true" : "false")); + config.setStringList(CONFIG_NOLINKERRORS, QStringList(qdocGlobals.noLinkErrors() ? "true" : "false")); + config.setStringList(CONFIG_AUTOLINKERRORS, QStringList(qdocGlobals.autolinkErrors() ? "true" : "false")); + config.setStringList(CONFIG_OBSOLETELINKS, QStringList(qdocGlobals.obsoleteLinks() ? "true" : "false")); - prevCurrentDir = QDir::currentPath(); + qdocGlobals.setPreviousCurrentDir(QDir::currentPath()); /* With the default configuration values in place, load @@ -254,28 +245,28 @@ static void processQdocconfFile(const QString &fileName) /* Add the defines to the configuration variables. */ - QStringList defs = defines + config.getStringList(CONFIG_DEFINES); + QStringList defs = qdocGlobals.defines() + config.getStringList(CONFIG_DEFINES); config.setStringList(CONFIG_DEFINES,defs); - QStringList incs = includesPaths + config.getStringList(CONFIG_INCLUDEPATHS); + QStringList incs = qdocGlobals.includesPaths() + config.getStringList(CONFIG_INCLUDEPATHS); config.setStringList(CONFIG_INCLUDEPATHS, incs); Location::terminate(); - currentDir = QFileInfo(fileName).path(); - if (!currentDir.isEmpty()) - QDir::setCurrent(currentDir); + qdocGlobals.setCurrentDir(QFileInfo(fileName).path()); + if (!qdocGlobals.currentDir().isEmpty()) + QDir::setCurrent(qdocGlobals.currentDir()); - QString phase = " in -"; + QString phase = " in "; if (Generator::singleExec()) - phase += "single exec mode, "; + phase += "single process mode, "; else - phase += "separate exec mode, "; + phase += "dual process mode, "; if (Generator::preparing()) - phase += "prepare phase "; + phase += "(prepare phase)"; else if (Generator::generating()) - phase += "generate phase "; + phase += "(generate phase)"; - QString msg = "Running qdoc for " + config.getString(CONFIG_PROJECT) + phase; - Location::logToStdErr(msg); + QString msg = "Start qdoc for " + config.getString(CONFIG_PROJECT) + phase; + Location::logToStdErrAlways(msg); /* Initialize all the classes and data structures with the @@ -310,7 +301,7 @@ static void processQdocconfFile(const QString &fileName) } } if (!found) { - QTranslator *translator = new QTranslator(0); + QTranslator *translator = new QTranslator(nullptr); if (!translator->load(*fn)) { config.lastLocation().error(QCoreApplication::translate("QDoc", "Cannot load translator '%1'").arg(*fn)); } @@ -370,9 +361,9 @@ static void processQdocconfFile(const QString &fileName) else clangParser_->setModuleHeader(project); - dependModules = config.getStringList(CONFIG_DEPENDS); - dependModules.removeDuplicates(); - qdb->setSearchOrder(dependModules); + qdocGlobals.dependModules() = config.getStringList(CONFIG_DEPENDS); + qdocGlobals.dependModules().removeDuplicates(); + qdb->setSearchOrder(qdocGlobals.dependModules()); // Store the title of the index (landing) page NamespaceNode* root = qdb->primaryTreeRoot(); @@ -470,7 +461,7 @@ static void processQdocconfFile(const QString &fileName) add it to the big tree. */ parsed = 0; - qCDebug(lcQdoc, "Parsing source files"); + Location::logToStdErrAlways("Parse source files for " + project); QMap<QString,QString>::ConstIterator s = sources.constBegin(); while (s != sources.constEnd()) { CodeParser *codeParser = CodeParser::parserForSourceFile(s.key()); @@ -481,7 +472,7 @@ static void processQdocconfFile(const QString &fileName) } ++s; } - qCDebug(lcQdoc, "Parsing done."); + Location::logToStdErrAlways("Source files parsed for " + project); /* Now the primary tree has been built from all the header and @@ -507,7 +498,7 @@ static void processQdocconfFile(const QString &fileName) QSet<QString>::ConstIterator of = outputFormats.constBegin(); while (of != outputFormats.constEnd()) { Generator* generator = Generator::generatorForFormat(*of); - if (generator == 0) + if (generator == nullptr) outputFormatsLocation.fatal(QCoreApplication::translate("QDoc", "Unknown output format '%1'").arg(*of)); generator->initializeFormat(config); @@ -524,6 +515,8 @@ static void processQdocconfFile(const QString &fileName) if (Generator::debugging()) Generator::stopDebugging(project); + msg = "End qdoc for " + config.getString(CONFIG_PROJECT) + phase; + Location::logToStdErrAlways(msg); QDocDatabase::qdocDB()->setVersion(QString()); Generator::terminate(); CodeParser::terminate(); @@ -531,210 +524,11 @@ static void processQdocconfFile(const QString &fileName) Doc::terminate(); Tokenizer::terminate(); Location::terminate(); - QDir::setCurrent(prevCurrentDir); + QDir::setCurrent(qdocGlobals.previousCurrentDir()); qCDebug(lcQdoc, "qdoc classes terminated"); } -class QDocCommandLineParser : public QCommandLineParser -{ -public: - QDocCommandLineParser(); - void process(const QCoreApplication &app); - -private: - QCommandLineOption defineOption, dependsOption, highlightingOption; - QCommandLineOption showInternalOption, redirectDocumentationToDevNullOption; - QCommandLineOption noExamplesOption, indexDirOption, installDirOption; - QCommandLineOption obsoleteLinksOption, outputDirOption, outputFormatOption; - QCommandLineOption noLinkErrorsOption, autoLinkErrorsOption, debugOption; - QCommandLineOption prepareOption, generateOption, logProgressOption; - QCommandLineOption singleExecOption, writeQaPagesOption; - QCommandLineOption includePathOption, includePathSystemOption, frameworkOption; -}; - -QDocCommandLineParser::QDocCommandLineParser() - : QCommandLineParser(), - defineOption(QStringList() << QStringLiteral("D")), - dependsOption(QStringList() << QStringLiteral("depends")), - highlightingOption(QStringList() << QStringLiteral("highlighting")), - showInternalOption(QStringList() << QStringLiteral("showinternal")), - redirectDocumentationToDevNullOption(QStringList() << QStringLiteral("redirect-documentation-to-dev-null")), - noExamplesOption(QStringList() << QStringLiteral("no-examples")), - indexDirOption(QStringList() << QStringLiteral("indexdir")), - installDirOption(QStringList() << QStringLiteral("installdir")), - obsoleteLinksOption(QStringList() << QStringLiteral("obsoletelinks")), - outputDirOption(QStringList() << QStringLiteral("outputdir")), - outputFormatOption(QStringList() << QStringLiteral("outputformat")), - noLinkErrorsOption(QStringList() << QStringLiteral("no-link-errors")), - autoLinkErrorsOption(QStringList() << QStringLiteral("autolink-errors")), - debugOption(QStringList() << QStringLiteral("debug")), - prepareOption(QStringList() << QStringLiteral("prepare")), - generateOption(QStringList() << QStringLiteral("generate")), - logProgressOption(QStringList() << QStringLiteral("log-progress")), - singleExecOption(QStringList() << QStringLiteral("single-exec")), - writeQaPagesOption(QStringList() << QStringLiteral("write-qa-pages")), - includePathOption("I", "Add dir to the include path for header files.", "path"), - includePathSystemOption("isystem", "Add dir to the system include path for header files.", "path"), - frameworkOption("F", "Add macOS framework to the include path for header files.", "framework") -{ - setApplicationDescription(QCoreApplication::translate("qdoc", "Qt documentation generator")); - addHelpOption(); - addVersionOption(); - - setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions); - - addPositionalArgument("file1.qdocconf ...", QCoreApplication::translate("qdoc", "Input files")); - - defineOption.setDescription(QCoreApplication::translate("qdoc", "Define the argument as a macro while parsing sources")); - defineOption.setValueName(QStringLiteral("macro[=def]")); - addOption(defineOption); - - dependsOption.setDescription(QCoreApplication::translate("qdoc", "Specify dependent modules")); - dependsOption.setValueName(QStringLiteral("module")); - addOption(dependsOption); - - highlightingOption.setDescription(QCoreApplication::translate("qdoc", "Turn on syntax highlighting (makes qdoc run slower)")); - addOption(highlightingOption); - - showInternalOption.setDescription(QCoreApplication::translate("qdoc", "Include content marked internal")); - addOption(showInternalOption); - - redirectDocumentationToDevNullOption.setDescription(QCoreApplication::translate("qdoc", "Save all documentation content to /dev/null. Useful if someone is interested in qdoc errors only.")); - addOption(redirectDocumentationToDevNullOption); - - noExamplesOption.setDescription(QCoreApplication::translate("qdoc", "Do not generate documentation for examples")); - addOption(noExamplesOption); - - indexDirOption.setDescription(QCoreApplication::translate("qdoc", "Specify a directory where QDoc should search for index files to load")); - indexDirOption.setValueName(QStringLiteral("dir")); - addOption(indexDirOption); - - installDirOption.setDescription(QCoreApplication::translate("qdoc", "Specify the directory where the output will be after running \"make install\"")); - installDirOption.setValueName(QStringLiteral("dir")); - addOption(installDirOption); - - obsoleteLinksOption.setDescription(QCoreApplication::translate("qdoc", "Report links from obsolete items to non-obsolete items")); - addOption(obsoleteLinksOption); - - outputDirOption.setDescription(QCoreApplication::translate("qdoc", "Specify output directory, overrides setting in qdocconf file")); - outputDirOption.setValueName(QStringLiteral("dir")); - addOption(outputDirOption); - - outputFormatOption.setDescription(QCoreApplication::translate("qdoc", "Specify output format, overrides setting in qdocconf file")); - outputFormatOption.setValueName(QStringLiteral("format")); - addOption(outputFormatOption); - - noLinkErrorsOption.setDescription(QCoreApplication::translate("qdoc", "Do not print link errors (i.e. missing targets)")); - addOption(noLinkErrorsOption); - - autoLinkErrorsOption.setDescription(QCoreApplication::translate("qdoc", "Show errors when automatic linking fails")); - addOption(autoLinkErrorsOption); - - debugOption.setDescription(QCoreApplication::translate("qdoc", "Enable debug output")); - addOption(debugOption); - - prepareOption.setDescription(QCoreApplication::translate("qdoc", "Run qdoc only to generate an index file, not the docs")); - addOption(prepareOption); - - generateOption.setDescription(QCoreApplication::translate("qdoc", "Run qdoc to read the index files and generate the docs")); - addOption(generateOption); - - logProgressOption.setDescription(QCoreApplication::translate("qdoc", "Log progress on stderr.")); - addOption(logProgressOption); - - singleExecOption.setDescription(QCoreApplication::translate("qdoc", "Run qdoc once over all the qdoc conf files.")); - addOption(singleExecOption); - - writeQaPagesOption.setDescription(QCoreApplication::translate("qdoc", "Write QA pages.")); - addOption(writeQaPagesOption); - - includePathOption.setFlags(QCommandLineOption::ShortOptionStyle); - addOption(includePathOption); - - addOption(includePathSystemOption); - - frameworkOption.setFlags(QCommandLineOption::ShortOptionStyle); - addOption(frameworkOption); -} - -void QDocCommandLineParser::process(const QCoreApplication &app) -{ - QCommandLineParser::process(app); - - defines += values(defineOption); - dependModules += values(dependsOption); - highlighting = isSet(highlightingOption); - showInternal = isSet(showInternalOption); - singleExec = isSet(singleExecOption); - writeQaPages = isSet(writeQaPagesOption); - redirectDocumentationToDevNull = isSet(redirectDocumentationToDevNullOption); - Config::generateExamples = !isSet(noExamplesOption); - foreach (const QString &indexDir, values(indexDirOption)) { - if (QFile::exists(indexDir)) - indexDirs += indexDir; - else - qDebug() << "Cannot find index directory" << indexDir; - } - if (isSet(installDirOption)) - Config::installDir = value(installDirOption); - obsoleteLinks = isSet(obsoleteLinksOption); - if (isSet(outputDirOption)) - Config::overrideOutputDir = value(outputDirOption); - foreach (const QString &format, values(outputFormatOption)) - Config::overrideOutputFormats.insert(format); - noLinkErrors = isSet(noLinkErrorsOption) || qEnvironmentVariableIsSet("QDOC_NOLINKERRORS"); - autolinkErrors = isSet(autoLinkErrorsOption); - if (isSet(debugOption)) - Generator::startDebugging(QString("command line")); - qCDebug(lcQdoc).noquote() << "Arguments :" << QCoreApplication::arguments(); - - if (isSet(prepareOption)) - Generator::setQDocPass(Generator::Prepare); - if (isSet(generateOption)) - Generator::setQDocPass(Generator::Generate); - if (isSet(singleExecOption)) { - Generator::setSingleExec(); - if (isSet(indexDirOption)) - qDebug() << "WARNING: -indexdir option ignored: Index files are not used in -single-exec mode."; - } - if (isSet(writeQaPagesOption)) - Generator::setWriteQaPages(); - if (isSet(logProgressOption)) - Location::startLoggingProgress(); - - QDir currentDir = QDir::current(); - const auto paths = values(includePathOption); - for (const auto &i : paths) - includesPaths << "-I" << currentDir.absoluteFilePath(i); -#ifdef QDOC_PASS_ISYSTEM - const auto paths2 = values(includePathSystemOption); - for (const auto &i : paths2) - includesPaths << "-isystem" << currentDir.absoluteFilePath(i); -#endif - const auto paths3 = values(frameworkOption); - for (const auto &i : paths3) - includesPaths << "-F" << currentDir.absoluteFilePath(i); - - /* - The default indent for code is 0. - The default value for false is 0. - The default supported file extensions are cpp, h, qdoc and qml. - The default language is c++. - The default output format is html. - The default tab size is 8. - And those are all the default values for configuration variables. - */ - if (defaults.isEmpty()) { - defaults.insert(CONFIG_CODEINDENT, QLatin1String("0")); - defaults.insert(CONFIG_FALSEHOODS, QLatin1String("0")); - defaults.insert(CONFIG_FILEEXTENSIONS, QLatin1String("*.cpp *.h *.qdoc *.qml")); - defaults.insert(CONFIG_LANGUAGE, QLatin1String("Cpp")); - defaults.insert(CONFIG_OUTPUTFORMATS, QLatin1String("HTML")); - defaults.insert(CONFIG_TABSIZE, QLatin1String("8")); - } -} - QT_END_NAMESPACE int main(int argc, char **argv) @@ -772,21 +566,21 @@ int main(int argc, char **argv) // Set the globals declared at the top of this file: QDocCommandLineParser parser; - parser.process(app); + parser.process(app, qdocGlobals); // Get the list of files to act on: QStringList qdocFiles = parser.positionalArguments(); if (qdocFiles.isEmpty()) parser.showHelp(); - if (singleExec) + if (qdocGlobals.singleExec()) qdocFiles = Config::loadMaster(qdocFiles.at(0)); // Main loop (adapted, when needed, to handle single exec mode): if (Generator::singleExec()) Generator::setQDocPass(Generator::Prepare); foreach (const QString &qf, qdocFiles) { - dependModules.clear(); + qdocGlobals.dependModules().clear(); processQdocconfFile(qf); } if (Generator::singleExec()) { @@ -794,7 +588,7 @@ int main(int argc, char **argv) QDocDatabase* qdb = QDocDatabase::qdocDB(); qdb->processForest(); foreach (const QString &qf, qdocFiles) { - dependModules.clear(); + qdocGlobals.dependModules().clear(); processQdocconfFile(qf); } } |