From e3def98c001a90e8046e6f20dd332927481abdec Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Thu, 9 May 2019 10:24:57 +0200 Subject: [PATCH] CppTools: Ensure that parse contexts are backed up by a toolchain Otherwise empty parse contexts (e.g. not having any include paths...) will be created that are not useful. Fixes: QTCREATORBUG-22421 Change-Id: I5c9172aee38503d8b48762416e17e7047679bf2e Reviewed-by: Cristian Adam Reviewed-by: Denis Shienkov Reviewed-by: Christian Kandeler --- src/plugins/cpptools/cppprojectinfogenerator.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/plugins/cpptools/cppprojectinfogenerator.cpp b/src/plugins/cpptools/cppprojectinfogenerator.cpp index f50f003263e..18c7d4fb761 100644 --- a/src/plugins/cpptools/cppprojectinfogenerator.cpp +++ b/src/plugins/cpptools/cppprojectinfogenerator.cpp @@ -89,10 +89,13 @@ QVector ProjectInfoGenerator::createProjectParts(const RawProj rawProjectPart.files, rawProjectPart.fileClassifier); - if (cat.hasParts()) { - const ProjectPart::Ptr part = projectPartFromRawProjectPart(rawProjectPart, - m_projectUpdateInfo.project); + if (!cat.hasParts()) + return result; + const ProjectPart::Ptr part = projectPartFromRawProjectPart(rawProjectPart, + m_projectUpdateInfo.project); + + if (m_projectUpdateInfo.cxxToolChain) { if (cat.hasCxxSources()) { result << createProjectPart(rawProjectPart, part, @@ -101,7 +104,6 @@ QVector ProjectInfoGenerator::createProjectParts(const RawProj Language::Cxx, LanguageExtension::None); } - if (cat.hasObjcxxSources()) { result << createProjectPart(rawProjectPart, part, @@ -110,7 +112,9 @@ QVector ProjectInfoGenerator::createProjectParts(const RawProj Language::Cxx, LanguageExtension::ObjectiveC); } + } + if (m_projectUpdateInfo.cToolChain) { if (cat.hasCSources()) { result << createProjectPart(rawProjectPart, part, @@ -129,6 +133,7 @@ QVector ProjectInfoGenerator::createProjectParts(const RawProj LanguageExtension::ObjectiveC); } } + return result; }