summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tools/qdoc/ditaxmlgenerator.cpp33
-rw-r--r--src/tools/qdoc/generator.cpp1
-rw-r--r--src/tools/qdoc/generator.h6
-rw-r--r--src/tools/qdoc/htmlgenerator.cpp32
-rw-r--r--src/tools/qdoc/main.cpp10
5 files changed, 56 insertions, 26 deletions
diff --git a/src/tools/qdoc/ditaxmlgenerator.cpp b/src/tools/qdoc/ditaxmlgenerator.cpp
index f7700ce2a0..563df612ab 100644
--- a/src/tools/qdoc/ditaxmlgenerator.cpp
+++ b/src/tools/qdoc/ditaxmlgenerator.cpp
@@ -673,19 +673,26 @@ GuidMap* DitaXmlGenerator::lookupGuidMap(const QString& fileName)
void DitaXmlGenerator::generateTree()
{
qdb_->buildCollections();
- Generator::generateTree();
- generateCollisionPages();
-
- QString fileBase = project.toLower().simplified().replace(QLatin1Char(' '), QLatin1Char('-'));
- qdb_->generateIndex(outputDir() + QLatin1Char('/') + fileBase + ".index",
- projectUrl,
- projectDescription,
- this);
- writeDitaMap();
- /*
- Generate the XML tag file, if it was requested.
- */
- qdb_->generateTagFile(tagFile_, this);
+ if (!runPrepareOnly()) {
+ Generator::generateTree();
+ generateCollisionPages();
+ }
+
+ if (!runGenerateOnly()) {
+ QString fileBase = project.toLower().simplified().replace(QLatin1Char(' '), QLatin1Char('-'));
+ qdb_->generateIndex(outputDir() + QLatin1Char('/') + fileBase + ".index",
+ projectUrl,
+ projectDescription,
+ this);
+ }
+
+ if (!runPrepareOnly()) {
+ writeDitaMap();
+ /*
+ Generate the XML tag file, if it was requested.
+ */
+ qdb_->generateTagFile(tagFile_, this);
+ }
}
static int countTableColumns(const Atom* t)
diff --git a/src/tools/qdoc/generator.cpp b/src/tools/qdoc/generator.cpp
index 1c7727db70..c6db340f74 100644
--- a/src/tools/qdoc/generator.cpp
+++ b/src/tools/qdoc/generator.cpp
@@ -96,6 +96,7 @@ QStringList Generator::styleDirs;
QStringList Generator::styleFiles;
bool Generator::debugging_ = false;
bool Generator::noLinkErrors_ = false;
+Generator::Passes Generator::qdocPass_ = Both;
void Generator::setDebugSegfaultFlag(bool b)
{
diff --git a/src/tools/qdoc/generator.h b/src/tools/qdoc/generator.h
index 30f2219243..3dc3b84767 100644
--- a/src/tools/qdoc/generator.h
+++ b/src/tools/qdoc/generator.h
@@ -68,6 +68,8 @@ class QDocDatabase;
class Generator
{
public:
+ enum Passes { Both, Prepare, Generate };
+
Generator();
virtual ~Generator();
@@ -90,6 +92,9 @@ public:
static void setDebugSegfaultFlag(bool b);
static bool debugging() { return debugging_; }
static bool noLinkErrors() { return noLinkErrors_; }
+ static void setQDocPass(Passes pass) { qdocPass_ = pass; }
+ static bool runPrepareOnly() { return (qdocPass_ == Prepare); }
+ static bool runGenerateOnly() { return (qdocPass_ == Generate); }
protected:
virtual void beginSubPage(const InnerNode* node, const QString& fileName);
@@ -193,6 +198,7 @@ private:
static QStringList styleFiles;
static bool debugging_;
static bool noLinkErrors_;
+ static Passes qdocPass_;
void appendFullName(Text& text,
const Node *apparentNode,
diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp
index a7721656f4..17dc40f08a 100644
--- a/src/tools/qdoc/htmlgenerator.cpp
+++ b/src/tools/qdoc/htmlgenerator.cpp
@@ -243,21 +243,27 @@ QString HtmlGenerator::format()
void HtmlGenerator::generateTree()
{
qdb_->buildCollections();
- Generator::generateTree();
- generateCollisionPages();
+ if (!runPrepareOnly()) {
+ Generator::generateTree();
+ generateCollisionPages();
+ }
- QString fileBase = project.toLower().simplified().replace(QLatin1Char(' '), QLatin1Char('-'));
- qdb_->generateIndex(outputDir() + QLatin1Char('/') + fileBase + ".index",
- projectUrl,
- projectDescription,
- this);
+ if (!runGenerateOnly()) {
+ QString fileBase = project.toLower().simplified().replace(QLatin1Char(' '), QLatin1Char('-'));
+ qdb_->generateIndex(outputDir() + QLatin1Char('/') + fileBase + ".index",
+ projectUrl,
+ projectDescription,
+ this);
+ }
- helpProjectWriter->generate();
- generateManifestFiles();
- /*
- Generate the XML tag file, if it was requested.
- */
- qdb_->generateTagFile(tagFile_, this);
+ if (!runPrepareOnly()) {
+ helpProjectWriter->generate();
+ generateManifestFiles();
+ /*
+ Generate the XML tag file, if it was requested.
+ */
+ qdb_->generateTagFile(tagFile_, this);
+ }
}
/*!
diff --git a/src/tools/qdoc/main.cpp b/src/tools/qdoc/main.cpp
index 03974c5d04..5fbc01f1f0 100644
--- a/src/tools/qdoc/main.cpp
+++ b/src/tools/qdoc/main.cpp
@@ -131,6 +131,10 @@ static void printHelp()
"Specify output directory, overrides setting in qdocconf file\n"
" -outputformat "
"Specify output format, overrides setting in qdocconf file\n"
+ " -prepare "
+ "Run qdoc only to generate an index file, not the docs\n"
+ " -generate "
+ "Run qdoc to read the index files and generate the docs\n"
" -showinternal "
"Include content marked internal\n"
" -version "
@@ -594,6 +598,12 @@ int main(int argc, char **argv)
else if (opt == "-debug") {
Generator::setDebugSegfaultFlag(true);
}
+ else if (opt == "-prepare") {
+ Generator::setQDocPass(Generator::Prepare);
+ }
+ else if (opt == "-generate") {
+ Generator::setQDocPass(Generator::Generate);
+ }
else {
qdocFiles.append(opt);
}