summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppprojects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cppprojects.cpp')
-rw-r--r--src/plugins/cpptools/cppprojects.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/plugins/cpptools/cppprojects.cpp b/src/plugins/cpptools/cppprojects.cpp
index d1ab05fb68..ba2b14ba0f 100644
--- a/src/plugins/cpptools/cppprojects.cpp
+++ b/src/plugins/cpptools/cppprojects.cpp
@@ -59,6 +59,16 @@ ProjectPart::ProjectPart()
{
}
+static ProjectPart::HeaderPath toProjectPartHeaderPath(const ProjectExplorer::HeaderPath &headerPath)
+{
+ const ProjectPart::HeaderPath::Type headerPathType =
+ headerPath.kind() == ProjectExplorer::HeaderPath::FrameworkHeaderPath
+ ? ProjectPart::HeaderPath::FrameworkPath
+ : ProjectPart::HeaderPath::IncludePath;
+
+ return ProjectPart::HeaderPath(headerPath.path(), headerPathType);
+}
+
/*!
\brief Retrieves info from concrete compiler using it's flags.
@@ -106,10 +116,9 @@ void ProjectPart::evaluateToolchain(const ToolChain *tc,
const QList<ProjectExplorer::HeaderPath> headers = tc->systemHeaderPaths(commandLineFlags, sysRoot);
foreach (const ProjectExplorer::HeaderPath &header, headers) {
- headerPaths << ProjectPart::HeaderPath(header.path(),
- header.kind() == ProjectExplorer::HeaderPath::FrameworkHeaderPath
- ? ProjectPart::HeaderPath::FrameworkPath
- : ProjectPart::HeaderPath::IncludePath);
+ const HeaderPath headerPath = toProjectPartHeaderPath(header);
+ if (!headerPaths.contains(headerPath))
+ headerPaths << headerPath;
}
toolchainDefines = tc->predefinedMacros(commandLineFlags);