aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Beschow <shentey@gmail.com>2019-01-20 15:25:18 +0100
committerBernhard Beschow <shentey@gmail.com>2019-01-27 12:13:45 +0000
commit693e2649a4dea7ed848372db7e81fad878bc0df4 (patch)
tree93537b8ee3fbfe25bb2e17a4cbedda7fca25a9d4
parente3522fd718d499fcaf072644baad59a3e8e717aa (diff)
CMakeProject: Prefer assignment to out parameter
Also change method names from update...() to create...() and mark as const. This communicates that the objects the methods are called on are neither altered nor updated. Change-Id: I29e84dc398ded3ffcbf90741227362c6b4be2bf9 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
-rw-r--r--src/plugins/cmakeprojectmanager/builddirmanager.cpp8
-rw-r--r--src/plugins/cmakeprojectmanager/builddirmanager.h2
-rw-r--r--src/plugins/cmakeprojectmanager/builddirreader.h2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.cpp3
-rw-r--r--src/plugins/cmakeprojectmanager/servermodereader.cpp6
-rw-r--r--src/plugins/cmakeprojectmanager/servermodereader.h2
-rw-r--r--src/plugins/cmakeprojectmanager/tealeafreader.cpp13
-rw-r--r--src/plugins/cmakeprojectmanager/tealeafreader.h8
8 files changed, 25 insertions, 19 deletions
diff --git a/src/plugins/cmakeprojectmanager/builddirmanager.cpp b/src/plugins/cmakeprojectmanager/builddirmanager.cpp
index 68a7ceb684..f17e356509 100644
--- a/src/plugins/cmakeprojectmanager/builddirmanager.cpp
+++ b/src/plugins/cmakeprojectmanager/builddirmanager.cpp
@@ -298,11 +298,11 @@ void BuildDirManager::generateProjectTree(CMakeProjectNode *root, const QList<co
m_reader->generateProjectTree(root, allFiles);
}
-void BuildDirManager::updateCodeModel(CppTools::RawProjectParts &rpps)
+CppTools::RawProjectParts BuildDirManager::createRawProjectParts() const
{
- QTC_ASSERT(!m_isHandlingError, return);
- QTC_ASSERT(m_reader, return);
- return m_reader->updateCodeModel(rpps);
+ QTC_ASSERT(!m_isHandlingError, return {});
+ QTC_ASSERT(m_reader, return {});
+ return m_reader->createRawProjectParts();
}
void BuildDirManager::clearCache()
diff --git a/src/plugins/cmakeprojectmanager/builddirmanager.h b/src/plugins/cmakeprojectmanager/builddirmanager.h
index 58fe11484c..d55e05aed2 100644
--- a/src/plugins/cmakeprojectmanager/builddirmanager.h
+++ b/src/plugins/cmakeprojectmanager/builddirmanager.h
@@ -76,7 +76,7 @@ public:
void generateProjectTree(CMakeProjectNode *root,
const QList<const ProjectExplorer::FileNode *> &allFiles) const;
- void updateCodeModel(CppTools::RawProjectParts &rpps);
+ CppTools::RawProjectParts createRawProjectParts() const;
QList<CMakeBuildTarget> takeBuildTargets() const;
CMakeConfig takeCMakeConfiguration() const;
diff --git a/src/plugins/cmakeprojectmanager/builddirreader.h b/src/plugins/cmakeprojectmanager/builddirreader.h
index e10109701d..3e600cfe39 100644
--- a/src/plugins/cmakeprojectmanager/builddirreader.h
+++ b/src/plugins/cmakeprojectmanager/builddirreader.h
@@ -67,7 +67,7 @@ public:
virtual CMakeConfig takeParsedConfiguration() = 0;
virtual void generateProjectTree(CMakeProjectNode *root,
const QList<const ProjectExplorer::FileNode *> &allFiles) = 0;
- virtual void updateCodeModel(CppTools::RawProjectParts &rpps) = 0;
+ virtual CppTools::RawProjectParts createRawProjectParts() const = 0;
signals:
void isReadyNow() const;
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index b8c5e3ffcd..9865c93c79 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -285,8 +285,7 @@ void CMakeProject::updateProjectData(CMakeBuildConfiguration *bc)
QtSupport::CppKitInfo kitInfo(this);
QTC_ASSERT(kitInfo.isValid(), return);
- CppTools::RawProjectParts rpps;
- m_buildDirManager.updateCodeModel(rpps);
+ CppTools::RawProjectParts rpps = m_buildDirManager.createRawProjectParts();
for (CppTools::RawProjectPart &rpp : rpps) {
rpp.setQtVersion(kitInfo.projectPartQtVersion); // TODO: Check if project actually uses Qt.
diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp
index d022443b21..9b293d0ff8 100644
--- a/src/plugins/cmakeprojectmanager/servermodereader.cpp
+++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp
@@ -356,8 +356,10 @@ void ServerModeReader::generateProjectTree(CMakeProjectNode *root,
std::move(cmakeFilesOther));
}
-void ServerModeReader::updateCodeModel(CppTools::RawProjectParts &rpps)
+CppTools::RawProjectParts ServerModeReader::createRawProjectParts() const
{
+ CppTools::RawProjectParts rpps;
+
int counter = 0;
for (const FileGroup *fg : qAsConst(m_fileGroups)) {
// CMake users worked around Creator's inability of listing header files by creating
@@ -399,6 +401,8 @@ void ServerModeReader::updateCodeModel(CppTools::RawProjectParts &rpps)
: CppTools::ProjectPart::Library);
rpps.append(rpp);
}
+
+ return rpps;
}
void ServerModeReader::handleReply(const QVariantMap &data, const QString &inReplyTo)
diff --git a/src/plugins/cmakeprojectmanager/servermodereader.h b/src/plugins/cmakeprojectmanager/servermodereader.h
index 9c29f2dcca..a8e998c68c 100644
--- a/src/plugins/cmakeprojectmanager/servermodereader.h
+++ b/src/plugins/cmakeprojectmanager/servermodereader.h
@@ -60,7 +60,7 @@ public:
CMakeConfig takeParsedConfiguration() final;
void generateProjectTree(CMakeProjectNode *root,
const QList<const ProjectExplorer::FileNode *> &allFiles) final;
- void updateCodeModel(CppTools::RawProjectParts &rpps) final;
+ CppTools::RawProjectParts createRawProjectParts() const final;
private:
void handleReply(const QVariantMap &data, const QString &inReplyTo);
diff --git a/src/plugins/cmakeprojectmanager/tealeafreader.cpp b/src/plugins/cmakeprojectmanager/tealeafreader.cpp
index 62f3753db4..320b470e45 100644
--- a/src/plugins/cmakeprojectmanager/tealeafreader.cpp
+++ b/src/plugins/cmakeprojectmanager/tealeafreader.cpp
@@ -342,12 +342,13 @@ static void processCMakeIncludes(const CMakeBuildTarget &cbt, const ToolChain *t
}
}
-void TeaLeafReader::updateCodeModel(CppTools::RawProjectParts &rpps)
+CppTools::RawProjectParts TeaLeafReader::createRawProjectParts() const
{
const ToolChain *tcCxx = ToolChainManager::findToolChain(m_parameters.cxxToolChainId);
const ToolChain *tcC = ToolChainManager::findToolChain(m_parameters.cToolChainId);
const FileName sysroot = m_parameters.sysRoot;
+ CppTools::RawProjectParts rpps;
QHash<QString, QStringList> targetDataCacheCxx;
QHash<QString, QStringList> targetDataCacheC;
foreach (const CMakeBuildTarget &cbt, m_buildTargets) {
@@ -390,6 +391,8 @@ void TeaLeafReader::updateCodeModel(CppTools::RawProjectParts &rpps)
: CppTools::ProjectPart::Library);
rpps.append(rpp);
}
+
+ return rpps;
}
void TeaLeafReader::cleanUpProcess()
@@ -575,7 +578,7 @@ void TeaLeafReader::processCMakeError()
QStringList TeaLeafReader::getFlagsFor(const CMakeBuildTarget &buildTarget,
QHash<QString, QStringList> &cache,
- Id lang)
+ Id lang) const
{
// check cache:
auto it = cache.constFind(buildTarget.title);
@@ -594,7 +597,7 @@ QStringList TeaLeafReader::getFlagsFor(const CMakeBuildTarget &buildTarget,
bool TeaLeafReader::extractFlagsFromMake(const CMakeBuildTarget &buildTarget,
QHash<QString, QStringList> &cache,
- Id lang)
+ Id lang) const
{
QString flagsPrefix;
@@ -649,7 +652,7 @@ bool TeaLeafReader::extractFlagsFromMake(const CMakeBuildTarget &buildTarget,
bool TeaLeafReader::extractFlagsFromNinja(const CMakeBuildTarget &buildTarget,
QHash<QString, QStringList> &cache,
- Id lang)
+ Id lang) const
{
Q_UNUSED(buildTarget)
if (!cache.isEmpty()) // We fill the cache in one go!
@@ -667,7 +670,7 @@ bool TeaLeafReader::extractFlagsFromNinja(const CMakeBuildTarget &buildTarget,
// found
// Get "all" target's working directory
QByteArray ninjaFile;
- QString buildNinjaFile = takeBuildTargets().at(0).workingDirectory.toString();
+ QString buildNinjaFile = m_buildTargets.at(0).workingDirectory.toString();
buildNinjaFile += "/build.ninja";
QFile buildNinja(buildNinjaFile);
if (buildNinja.exists()) {
diff --git a/src/plugins/cmakeprojectmanager/tealeafreader.h b/src/plugins/cmakeprojectmanager/tealeafreader.h
index df3ec8e59d..142ea4b5af 100644
--- a/src/plugins/cmakeprojectmanager/tealeafreader.h
+++ b/src/plugins/cmakeprojectmanager/tealeafreader.h
@@ -57,7 +57,7 @@ public:
CMakeConfig takeParsedConfiguration() final;
void generateProjectTree(CMakeProjectNode *root,
const QList<const ProjectExplorer::FileNode *> &allFiles) final;
- void updateCodeModel(CppTools::RawProjectParts &rpps) final;
+ CppTools::RawProjectParts createRawProjectParts() const final;
private:
void cleanUpProcess();
@@ -69,9 +69,9 @@ private:
void processCMakeOutput();
void processCMakeError();
- QStringList getFlagsFor(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache, Core::Id lang);
- bool extractFlagsFromMake(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache, Core::Id lang);
- bool extractFlagsFromNinja(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache, Core::Id lang);
+ QStringList getFlagsFor(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache, Core::Id lang) const;
+ bool extractFlagsFromMake(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache, Core::Id lang) const;
+ bool extractFlagsFromNinja(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache, Core::Id lang) const;
Utils::QtcProcess *m_cmakeProcess = nullptr;