From 6deaf6b23d76e0dded86a86f15940debc7598444 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Tue, 17 Nov 2015 16:21:13 +0100 Subject: CppTools: Guard against doubled header paths Change-Id: If183b6d2210028f74dae839db782114ce79911c4 Reviewed-by: Tobias Hunger Reviewed-by: Marco Bubke --- src/plugins/cpptools/cppprojects.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/plugins/cpptools/cppprojects.cpp') 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 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); -- cgit v1.2.1