summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/compileroptionsbuilder.cpp
diff options
context:
space:
mode:
authorDenis Klychkov <kd.snake@gmail.com>2016-11-02 12:21:54 +0300
committerNikolai Kosjar <nikolai.kosjar@qt.io>2016-11-16 09:10:14 +0000
commit36d4d01cd374a21a8b7c229b261c5f1a23d1184e (patch)
treeebb2fb9b760253b0c315918db8fd4fcf3c29e6bd /src/plugins/cpptools/compileroptionsbuilder.cpp
parent569f4499c038f4186d511d15d2b626d57b57fcd1 (diff)
downloadqt-creator-36d4d01cd374a21a8b7c229b261c5f1a23d1184e.tar.gz
Clang: Take precompiled headers into account when parsing source files
Task-number: QTCREATORBUG-15590 Change-Id: Icbfce4ffd6e9f9802641d35d898fa1dc1c4c18ee Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Diffstat (limited to 'src/plugins/cpptools/compileroptionsbuilder.cpp')
-rw-r--r--src/plugins/cpptools/compileroptionsbuilder.cpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp
index 01378ec88e..d99692536d 100644
--- a/src/plugins/cpptools/compileroptionsbuilder.cpp
+++ b/src/plugins/cpptools/compileroptionsbuilder.cpp
@@ -112,7 +112,7 @@ void CompilerOptionsBuilder::enableExceptions()
void CompilerOptionsBuilder::addHeaderPathOptions()
{
typedef ProjectPartHeaderPath HeaderPath;
- const QString defaultPrefix = includeOption();
+ const QString defaultPrefix = includeDirOption();
QStringList result;
@@ -141,6 +141,24 @@ void CompilerOptionsBuilder::addHeaderPathOptions()
m_options.append(result);
}
+void CompilerOptionsBuilder::addPrecompiledHeaderOptions(PchUsage pchUsage)
+{
+ if (pchUsage == PchUsage::None)
+ return;
+
+ QStringList result;
+
+ const QString includeOptionString = includeOption();
+ foreach (const QString &pchFile, m_projectPart.precompiledHeaders) {
+ if (QFile::exists(pchFile)) {
+ result += includeOptionString;
+ result += QDir::toNativeSeparators(pchFile);
+ }
+ }
+
+ m_options.append(result);
+}
+
void CompilerOptionsBuilder::addToolchainAndProjectDefines()
{
addDefines(m_projectPart.toolchainDefines);
@@ -376,7 +394,7 @@ void CompilerOptionsBuilder::addDefineFloat128ForMingw()
addDefine("#define __float128 void");
}
-QString CompilerOptionsBuilder::includeOption() const
+QString CompilerOptionsBuilder::includeDirOption() const
{
return QLatin1String("-I");
}
@@ -399,6 +417,11 @@ QString CompilerOptionsBuilder::undefineOption() const
return QLatin1String("-U");
}
+QString CompilerOptionsBuilder::includeOption() const
+{
+ return QLatin1String("-include");
+}
+
static bool isGccOrMinGwToolchain(const Core::Id &toolchainType)
{
return toolchainType == ProjectExplorer::Constants::GCC_TOOLCHAIN_TYPEID