summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2018-09-17 09:26:56 +0200
committerIvan Donchevskii <ivan.donchevskii@qt.io>2018-09-17 13:13:16 +0000
commiteeece5b5adbfeee3e9924052f6e34d5f4ef642b9 (patch)
tree601dfe9db53a85347f970b74708c9ad10b0f316c
parent0bd095aa4550eac51d026c96e5128720bf867a41 (diff)
downloadqt-creator-eeece5b5adbfeee3e9924052f6e34d5f4ef642b9.tar.gz
Clang: Skip built-in includes when exporting the compilation database
We don't want to have compiler-specific paths there. Change-Id: If26434ea3760d4f2ca4c25bbcf0340f4ea781072 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
-rw-r--r--src/plugins/clangcodemodel/clangutils.cpp5
-rw-r--r--src/plugins/clangtools/clangtoolruncontrol.cpp1
-rw-r--r--src/plugins/cpptools/compileroptionsbuilder.cpp5
-rw-r--r--src/plugins/cpptools/compileroptionsbuilder.h9
4 files changed, 18 insertions, 2 deletions
diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp
index 9638cfa2dd..fcafbff7ef 100644
--- a/src/plugins/clangcodemodel/clangutils.cpp
+++ b/src/plugins/clangcodemodel/clangutils.cpp
@@ -89,6 +89,7 @@ public:
LibClangOptionsBuilder(const ProjectPart &projectPart)
: CompilerOptionsBuilder(projectPart,
UseSystemHeader::No,
+ CppTools::SkipBuiltIn::No,
QString(CLANG_VERSION),
QString(CLANG_RESOURCE_DIR))
{
@@ -348,7 +349,9 @@ void generateCompilationDB(::Utils::FileName projectDir, CppTools::ProjectInfo p
for (ProjectPart::Ptr projectPart : projectInfo.projectParts()) {
const ::Utils::FileName buildDir = buildDirectory(*projectPart);
- CompilerOptionsBuilder optionsBuilder(*projectPart);
+ CompilerOptionsBuilder optionsBuilder(*projectPart,
+ CppTools::UseSystemHeader::No,
+ CppTools::SkipBuiltIn::Yes);
optionsBuilder.build(CppTools::ProjectFile::Unclassified,
CppTools::CompilerOptionsBuilder::PchUsage::None);
diff --git a/src/plugins/clangtools/clangtoolruncontrol.cpp b/src/plugins/clangtools/clangtoolruncontrol.cpp
index 92e225bc5b..67d8c013e6 100644
--- a/src/plugins/clangtools/clangtoolruncontrol.cpp
+++ b/src/plugins/clangtools/clangtoolruncontrol.cpp
@@ -193,6 +193,7 @@ static AnalyzeUnits toAnalyzeUnits(const FileInfos &fileInfos)
for (const FileInfo &fileInfo : fileInfos) {
CompilerOptionsBuilder optionsBuilder(*fileInfo.projectPart,
CppTools::UseSystemHeader::No,
+ CppTools::SkipBuiltIn::No,
QString(CLANG_VERSION),
QString(CLANG_RESOURCE_DIR));
QStringList arguments = extraClangToolsPrependOptions();
diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp
index 38fa94e83d..d4d36fa806 100644
--- a/src/plugins/cpptools/compileroptionsbuilder.cpp
+++ b/src/plugins/cpptools/compileroptionsbuilder.cpp
@@ -43,12 +43,14 @@ namespace CppTools {
CompilerOptionsBuilder::CompilerOptionsBuilder(const ProjectPart &projectPart,
UseSystemHeader useSystemHeader,
+ SkipBuiltIn skipBuiltInHeaderPaths,
QString clangVersion,
QString clangResourceDirectory)
: m_projectPart(projectPart)
, m_useSystemHeader(useSystemHeader)
, m_clangVersion(clangVersion)
, m_clangResourceDirectory(clangResourceDirectory)
+ , m_skipBuiltInHeaderPaths(skipBuiltInHeaderPaths)
{
}
@@ -237,7 +239,8 @@ void CompilerOptionsBuilder::addHeaderPathOptions()
m_options.append(includes);
m_options.append(systemIncludes);
- m_options.append(builtInIncludes);
+ if (m_skipBuiltInHeaderPaths == SkipBuiltIn::No)
+ m_options.append(builtInIncludes);
}
void CompilerOptionsBuilder::addPrecompiledHeaderOptions(PchUsage pchUsage)
diff --git a/src/plugins/cpptools/compileroptionsbuilder.h b/src/plugins/cpptools/compileroptionsbuilder.h
index 4c85427cf4..433b95ae7f 100644
--- a/src/plugins/cpptools/compileroptionsbuilder.h
+++ b/src/plugins/cpptools/compileroptionsbuilder.h
@@ -37,6 +37,12 @@ enum class UseSystemHeader
No
};
+enum class SkipBuiltIn
+{
+ Yes,
+ No
+};
+
class CPPTOOLS_EXPORT CompilerOptionsBuilder
{
public:
@@ -47,6 +53,7 @@ public:
CompilerOptionsBuilder(const ProjectPart &projectPart,
UseSystemHeader useSystemHeader = UseSystemHeader::No,
+ SkipBuiltIn skipBuiltInHeaderPaths = SkipBuiltIn::No,
QString clangVersion = QString(),
QString clangResourceDirectory = QString());
virtual ~CompilerOptionsBuilder() {}
@@ -106,6 +113,8 @@ private:
QString m_clangVersion;
QString m_clangResourceDirectory;
+
+ SkipBuiltIn m_skipBuiltInHeaderPaths;
};
} // namespace CppTools