diff options
author | Denis Klychkov <kd.snake@gmail.com> | 2016-11-02 12:21:54 +0300 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2016-11-16 09:10:14 +0000 |
commit | 36d4d01cd374a21a8b7c229b261c5f1a23d1184e (patch) | |
tree | ebb2fb9b760253b0c315918db8fd4fcf3c29e6bd /src/plugins/clangstaticanalyzer | |
parent | 569f4499c038f4186d511d15d2b626d57b57fcd1 (diff) | |
download | qt-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/clangstaticanalyzer')
-rw-r--r-- | src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp index 10cb6115ba..2a8a5f58c9 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp @@ -40,6 +40,7 @@ #include <cpptools/compileroptionsbuilder.h> #include <cpptools/cppmodelmanager.h> #include <cpptools/cppprojectfile.h> +#include <cpptools/cpptoolsreuse.h> #include <cpptools/projectinfo.h> #include <projectexplorer/abi.h> @@ -165,7 +166,8 @@ class ClangStaticAnalyzerOptionsBuilder : public CompilerOptionsBuilder { public: static QStringList build(const CppTools::ProjectPart &projectPart, - CppTools::ProjectFile::Kind fileKind) + CppTools::ProjectFile::Kind fileKind, + PchUsage pchUsage) { ClangStaticAnalyzerOptionsBuilder optionsBuilder(projectPart); @@ -184,6 +186,7 @@ public: optionsBuilder.undefineClangVersionMacrosForMsvc(); optionsBuilder.undefineCppLanguageFeatureMacrosForMsvc2015(); optionsBuilder.addHeaderPathOptions(); + optionsBuilder.addPrecompiledHeaderOptions(pchUsage); optionsBuilder.addMsvcCompatibilityVersion(); if (type != ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) @@ -243,10 +246,17 @@ private: QString includeOption() const override { if (m_isMsvcToolchain) - return QLatin1String("/I"); + return QLatin1String("/FI"); return CompilerOptionsBuilder::includeOption(); } + QString includeDirOption() const override + { + if (m_isMsvcToolchain) + return QLatin1String("/I"); + return CompilerOptionsBuilder::includeDirOption(); + } + QString defineOption() const override { if (m_isMsvcToolchain) @@ -376,8 +386,9 @@ static AnalyzeUnits unitsToAnalyzeFromProjectParts(const QList<ProjectPart::Ptr> continue; QTC_CHECK(file.kind != ProjectFile::Unclassified); if (ProjectFile::isSource(file.kind)) { + const CompilerOptionsBuilder::PchUsage pchUsage = CppTools::getPchUsage(); const QStringList arguments - = ClangStaticAnalyzerOptionsBuilder::build(*projectPart.data(), file.kind); + = ClangStaticAnalyzerOptionsBuilder::build(*projectPart.data(), file.kind, pchUsage); unitsToAnalyze << AnalyzeUnit(file.path, arguments); } } |