summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@qt.io>2018-03-27 12:36:59 +0200
committerTopi Reiniƶ <topi.reinio@qt.io>2018-03-28 12:13:02 +0000
commitb34f81532688f6b3809e17a9bbd98f72015fe915 (patch)
tree0fbb2629d9efac731436ea29ffe1c51d3a340b98
parentfbcf5ecedd86a0bbe98a8174288db278db0a25cb (diff)
downloadqttools-b34f81532688f6b3809e17a9bbd98f72015fe915.tar.gz
qdoc: Distinguish between undefined and defined-as-empty config vars
Make Config::getString() return an empty string for variables that are defined as empty, while continuing to return a null string for undefined ones. Use a defined-as-empty 'moduleheader' variable: moduleheader = to mark a documentation project that doesn't need a precompiled header to be built. Change-Id: I2ccb631c73a1b91dc35955e5f21648db88915064 Reviewed-by: Martin Smith <martin.smith@qt.io>
-rw-r--r--src/qdoc/clangcodeparser.cpp2
-rw-r--r--src/qdoc/config.cpp7
-rw-r--r--src/qdoc/main.cpp2
3 files changed, 8 insertions, 3 deletions
diff --git a/src/qdoc/clangcodeparser.cpp b/src/qdoc/clangcodeparser.cpp
index 77055ca9f..ec145c736 100644
--- a/src/qdoc/clangcodeparser.cpp
+++ b/src/qdoc/clangcodeparser.cpp
@@ -1176,7 +1176,7 @@ void ClangCodeParser::getMoreArgs()
*/
void ClangCodeParser::buildPCH()
{
- if (!pchFileDir_) {
+ if (!pchFileDir_ && !moduleHeader().isEmpty()) {
pchFileDir_.reset(new QTemporaryDir(QDir::tempPath() + QLatin1String("/qdoc_pch")));
if (pchFileDir_->isValid()) {
//const QByteArray module = qdb_->primaryTreeRoot()->tree()->camelCaseModuleName().toUtf8();
diff --git a/src/qdoc/config.cpp b/src/qdoc/config.cpp
index de7f23ce6..64c8786f6 100644
--- a/src/qdoc/config.cpp
+++ b/src/qdoc/config.cpp
@@ -397,12 +397,17 @@ QSet<QString> Config::getOutputFormats() const
If \a var is not contained in the location map it returns
\a defaultString.
+
+ \note By default, \a defaultString is a null string. If \a var
+ is found but contains an empty string, that is returned instead.
+ This allows determining whether a configuration variable is
+ undefined (null string) or defined as empty (empty string).
*/
QString Config::getString(const QString& var, const QString& defaultString) const
{
QList<ConfigVar> configVars = configVars_.values(var);
if (!configVars.empty()) {
- QString value;
+ QString value("");
int i = configVars.size() - 1;
while (i >= 0) {
const ConfigVar& cv = configVars[i];
diff --git a/src/qdoc/main.cpp b/src/qdoc/main.cpp
index 79cde7950..563915d49 100644
--- a/src/qdoc/main.cpp
+++ b/src/qdoc/main.cpp
@@ -366,7 +366,7 @@ static void processQdocconfFile(const QString &fileName)
qdb->newPrimaryTree(project);
else
qdb->setPrimaryTree(project);
- if (!moduleHeader.isEmpty())
+ if (!moduleHeader.isNull())
clangParser_->setModuleHeader(moduleHeader);
else
clangParser_->setModuleHeader(project);