diff options
author | Paul Wicking <paul.wicking@qt.io> | 2023-03-22 21:23:17 +0100 |
---|---|---|
committer | Paul Wicking <paul.wicking@qt.io> | 2023-03-23 13:41:50 +0100 |
commit | 4fc8835cf4534e926f27539c8c316470e5d7e11f (patch) | |
tree | 9f489bfec876375475138801f9c62cc94bc14d16 /src/qdoc/main.cpp | |
parent | 9ac1e17f5af594021b5c0eba4c7a6112d9199374 (diff) | |
download | qttools-4fc8835cf4534e926f27539c8c316470e5d7e11f.tar.gz |
QDoc: Extract singleExecutionMode function from main()
In QDoc's main(), two identical conditional checks for whether QDoc runs
in single execution mode follow each other. This patch extracts the
contents of these conditionals and places them in a separate function,
singleExecutionMode(). This in turn makes main() slightly easier to read
and reason about.
The new function is documented such that its purpose can be understood
in clear terms. The list the function operates on is obtained from Config.
As that is a singleton object, the function doesn't require the passing
of a reference to that object, as it can access the required functionality
directly through the singleton instance itself. The new function is
therefore parameterless.
Task-number: QTBUG-71176
Change-Id: I49fb571b99a24ff70ab8f0b17de8e1f44064e418
Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
Diffstat (limited to 'src/qdoc/main.cpp')
-rw-r--r-- | src/qdoc/main.cpp | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/src/qdoc/main.cpp b/src/qdoc/main.cpp index 300c35970..58cbafa5b 100644 --- a/src/qdoc/main.cpp +++ b/src/qdoc/main.cpp @@ -611,6 +611,34 @@ static void processQdocconfFile(const QString &fileName) qCDebug(lcQdoc, "qdoc classes terminated"); } +/*! + \internal + + A single QDoc process for prepare and generate phases. + The purpose is to first generate all index files for all documentation + projects that combined make out the documentation set being generated. + This allows QDoc to link to all content contained in all projects, e.g. + user-defined types or overview documentation, regardless of the project + that content belongs to when generating the final output. +*/ +static void singleExecutionMode() +{ + const QStringList qdocFiles = Config::loadMaster(Config::instance().qdocFiles().at(0)); + + Config::instance().setQDocPass(Config::Prepare); + for (const auto &file : std::as_const(qdocFiles)) { + Config::instance().dependModules().clear(); + processQdocconfFile(file); + } + + Config::instance().setQDocPass(Config::Generate); + QDocDatabase::qdocDB()->processForest(); + for (const auto &file : std::as_const(qdocFiles)) { + Config::instance().dependModules().clear(); + processQdocconfFile(file); + } +} + QT_END_NAMESPACE int main(int argc, char **argv) @@ -655,22 +683,8 @@ int main(int argc, char **argv) if (qdocFiles.isEmpty()) config.showHelp(); - if (config.singleExec()) - qdocFiles = Config::loadMaster(qdocFiles.at(0)); - if (config.singleExec()) { - // single qdoc process for prepare and generate phases - config.setQDocPass(Config::Prepare); - for (const auto &file : std::as_const(qdocFiles)) { - config.dependModules().clear(); - processQdocconfFile(file); - } - config.setQDocPass(Config::Generate); - QDocDatabase::qdocDB()->processForest(); - for (const auto &file : std::as_const(qdocFiles)) { - config.dependModules().clear(); - processQdocconfFile(file); - } + singleExecutionMode(); } else { // separate qdoc processes for prepare and generate phases for (const auto &file : std::as_const(qdocFiles)) { |