diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2018-09-17 09:26:56 +0200 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2018-09-17 13:13:16 +0000 |
commit | eeece5b5adbfeee3e9924052f6e34d5f4ef642b9 (patch) | |
tree | 601dfe9db53a85347f970b74708c9ad10b0f316c | |
parent | 0bd095aa4550eac51d026c96e5128720bf867a41 (diff) | |
download | qt-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.cpp | 5 | ||||
-rw-r--r-- | src/plugins/clangtools/clangtoolruncontrol.cpp | 1 | ||||
-rw-r--r-- | src/plugins/cpptools/compileroptionsbuilder.cpp | 5 | ||||
-rw-r--r-- | src/plugins/cpptools/compileroptionsbuilder.h | 9 |
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 |