From 719a51a03d551af11da7c4873207c25caf652f4c Mon Sep 17 00:00:00 2001 From: Bernhard Beschow Date: Sun, 20 Jan 2019 15:03:55 +0100 Subject: [PATCH] CMakeProject: Update attribute in update method createGeneratedCodeModelSupport() can now be marked const and is renamed since it doesn't create GeneratedCodeModelSupport instances any longer. Change-Id: I8b4b8e8980623841889bd3a03e5fe8c1d4342cb3 Reviewed-by: Tobias Hunger --- src/plugins/cmakeprojectmanager/cmakeproject.cpp | 13 +++++++------ src/plugins/cmakeprojectmanager/cmakeproject.h | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index 9865c93c794..ec8e0d076d5 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -280,7 +280,9 @@ void CMakeProject::updateProjectData(CMakeBuildConfiguration *bc) t->updateDefaultRunConfigurations(); - createGeneratedCodeModelSupport(); + qDeleteAll(m_extraCompilers); + m_extraCompilers = findExtraCompilers(); + CppTools::GeneratedCodeModelSupport::update(m_extraCompilers); QtSupport::CppKitInfo kitInfo(this); QTC_ASSERT(kitInfo.isValid(), return); @@ -579,10 +581,9 @@ bool CMakeProject::mustUpdateCMakeStateBeforeBuild() return m_delayedParsingTimer.isActive(); } -void CMakeProject::createGeneratedCodeModelSupport() +QList CMakeProject::findExtraCompilers() const { - qDeleteAll(m_extraCompilers); - m_extraCompilers.clear(); + QList extraCompilers; const QList factories = ExtraCompilerFactory::extraCompilerFactories(); @@ -612,10 +613,10 @@ void CMakeProject::createGeneratedCodeModelSupport() const FileNameList fileNames = transform(generated, [](const QString &s) { return FileName::fromString(s); }); - m_extraCompilers.append(factory->create(this, file, fileNames)); + extraCompilers.append(factory->create(this, file, fileNames)); } - CppTools::GeneratedCodeModelSupport::update(m_extraCompilers); + return extraCompilers; } } // namespace CMakeProjectManager diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h index a84a1130f51..686d93996fe 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.h +++ b/src/plugins/cmakeprojectmanager/cmakeproject.h @@ -100,7 +100,7 @@ private: std::unique_ptr generateProjectTree(const QList &allFiles) const; - void createGeneratedCodeModelSupport(); + QList findExtraCompilers() const; QStringList filesGeneratedFrom(const QString &sourceFile) const final; // TODO probably need a CMake specific node structure