aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangcodemodel/clangutils.cpp
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2018-08-23 15:45:33 +0200
committerIvan Donchevskii <ivan.donchevskii@qt.io>2018-08-27 11:35:02 +0000
commit1b4f5c0670aa59d703e94bff1b4181855b03f2ab (patch)
tree9b6a03422c50c44e3afa1239cbf436030644fe8b /src/plugins/clangcodemodel/clangutils.cpp
parent4538227cb1abff165487dfe001eacff377dddde6 (diff)
Clang: Fix include paths order
C++ include paths should come before Clang include folder. Therefore parse all options for include/c++/v1, include/c++/{version}, include/g++ and /usr/local/include. Task-number: QTCREATORBUG-20231 Change-Id: I22c41f07d241e1e564069bb192d4fe637ff05e87 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Diffstat (limited to 'src/plugins/clangcodemodel/clangutils.cpp')
-rw-r--r--src/plugins/clangcodemodel/clangutils.cpp60
1 files changed, 4 insertions, 56 deletions
diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp
index 8f11758ac4..725042488b 100644
--- a/src/plugins/clangcodemodel/clangutils.cpp
+++ b/src/plugins/clangcodemodel/clangutils.cpp
@@ -83,44 +83,17 @@ QStringList createClangOptions(const ProjectPart::Ptr &pPart, const QString &fil
return createClangOptions(pPart, fileKind);
}
-static QString creatorResourcePath()
-{
-#ifndef UNIT_TESTS
- return Core::ICore::resourcePath();
-#else
- return QString();
-#endif
-}
-
-static QString clangIncludeDirectory(const QString &clangVersion,
- const QString &clangResourceDirectory)
-{
-#ifndef UNIT_TESTS
- return Core::ICore::clangIncludeDirectory(clangVersion, clangResourceDirectory);
-#else
- return QString();
-#endif
-}
-
class LibClangOptionsBuilder final : public CompilerOptionsBuilder
{
public:
LibClangOptionsBuilder(const ProjectPart &projectPart)
- : CompilerOptionsBuilder(projectPart)
- , m_clangVersion(CLANG_VERSION)
- , m_clangResourceDirectory(CLANG_RESOURCE_DIR)
+ : CompilerOptionsBuilder(projectPart,
+ UseSystemHeader::No,
+ QString(CLANG_VERSION),
+ QString(CLANG_RESOURCE_DIR))
{
}
- void addPredefinedHeaderPathsOptions() final
- {
- CompilerOptionsBuilder::addPredefinedHeaderPathsOptions();
- add("-nostdinc");
- add("-nostdlibinc");
- addClangIncludeFolder();
- addWrappedQtHeadersIncludePath();
- }
-
void addToolchainAndProjectMacros() final
{
addMacros({ProjectExplorer::Macro("Q_CREATOR_RUN", "1")});
@@ -138,28 +111,6 @@ public:
}
private:
- void addClangIncludeFolder()
- {
- QTC_CHECK(!m_clangVersion.isEmpty());
- add("-I");
- add(clangIncludeDirectory(m_clangVersion, m_clangResourceDirectory));
- }
-
- void addWrappedQtHeadersIncludePath()
- {
- static const QString resourcePath = creatorResourcePath();
- static QString wrappedQtHeadersPath = resourcePath + "/cplusplus/wrappedQtHeaders";
- QTC_ASSERT(QDir(wrappedQtHeadersPath).exists(), return;);
-
- if (m_projectPart.qtVersion != CppTools::ProjectPart::NoQt) {
- const QString wrappedQtCoreHeaderPath = wrappedQtHeadersPath + "/QtCore";
- add(includeDirOptionForPath(wrappedQtHeadersPath));
- add(QDir::toNativeSeparators(wrappedQtHeadersPath));
- add(includeDirOptionForPath(wrappedQtHeadersPath));
- add(QDir::toNativeSeparators(wrappedQtCoreHeaderPath));
- }
- }
-
void addDummyUiHeaderOnDiskIncludePath()
{
const QString path = ModelManagerSupportClang::instance()->dummyUiHeaderOnDiskDirPath();
@@ -168,9 +119,6 @@ private:
add(QDir::toNativeSeparators(path));
}
}
-
- QString m_clangVersion;
- QString m_clangResourceDirectory;
};
/**