forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -298,11 +298,11 @@ void BuildDirManager::generateProjectTree(CMakeProjectNode *root, const QList<co
|
|||||||
m_reader->generateProjectTree(root, allFiles);
|
m_reader->generateProjectTree(root, allFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildDirManager::updateCodeModel(CppTools::RawProjectParts &rpps)
|
CppTools::RawProjectParts BuildDirManager::createRawProjectParts() const
|
||||||
{
|
{
|
||||||
QTC_ASSERT(!m_isHandlingError, return);
|
QTC_ASSERT(!m_isHandlingError, return {});
|
||||||
QTC_ASSERT(m_reader, return);
|
QTC_ASSERT(m_reader, return {});
|
||||||
return m_reader->updateCodeModel(rpps);
|
return m_reader->createRawProjectParts();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildDirManager::clearCache()
|
void BuildDirManager::clearCache()
|
||||||
|
@@ -76,7 +76,7 @@ public:
|
|||||||
|
|
||||||
void generateProjectTree(CMakeProjectNode *root,
|
void generateProjectTree(CMakeProjectNode *root,
|
||||||
const QList<const ProjectExplorer::FileNode *> &allFiles) const;
|
const QList<const ProjectExplorer::FileNode *> &allFiles) const;
|
||||||
void updateCodeModel(CppTools::RawProjectParts &rpps);
|
CppTools::RawProjectParts createRawProjectParts() const;
|
||||||
|
|
||||||
QList<CMakeBuildTarget> takeBuildTargets() const;
|
QList<CMakeBuildTarget> takeBuildTargets() const;
|
||||||
CMakeConfig takeCMakeConfiguration() const;
|
CMakeConfig takeCMakeConfiguration() const;
|
||||||
|
@@ -67,7 +67,7 @@ public:
|
|||||||
virtual CMakeConfig takeParsedConfiguration() = 0;
|
virtual CMakeConfig takeParsedConfiguration() = 0;
|
||||||
virtual void generateProjectTree(CMakeProjectNode *root,
|
virtual void generateProjectTree(CMakeProjectNode *root,
|
||||||
const QList<const ProjectExplorer::FileNode *> &allFiles) = 0;
|
const QList<const ProjectExplorer::FileNode *> &allFiles) = 0;
|
||||||
virtual void updateCodeModel(CppTools::RawProjectParts &rpps) = 0;
|
virtual CppTools::RawProjectParts createRawProjectParts() const = 0;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void isReadyNow() const;
|
void isReadyNow() const;
|
||||||
|
@@ -285,8 +285,7 @@ void CMakeProject::updateProjectData(CMakeBuildConfiguration *bc)
|
|||||||
QtSupport::CppKitInfo kitInfo(this);
|
QtSupport::CppKitInfo kitInfo(this);
|
||||||
QTC_ASSERT(kitInfo.isValid(), return);
|
QTC_ASSERT(kitInfo.isValid(), return);
|
||||||
|
|
||||||
CppTools::RawProjectParts rpps;
|
CppTools::RawProjectParts rpps = m_buildDirManager.createRawProjectParts();
|
||||||
m_buildDirManager.updateCodeModel(rpps);
|
|
||||||
|
|
||||||
for (CppTools::RawProjectPart &rpp : rpps) {
|
for (CppTools::RawProjectPart &rpp : rpps) {
|
||||||
rpp.setQtVersion(kitInfo.projectPartQtVersion); // TODO: Check if project actually uses Qt.
|
rpp.setQtVersion(kitInfo.projectPartQtVersion); // TODO: Check if project actually uses Qt.
|
||||||
|
@@ -356,8 +356,10 @@ void ServerModeReader::generateProjectTree(CMakeProjectNode *root,
|
|||||||
std::move(cmakeFilesOther));
|
std::move(cmakeFilesOther));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerModeReader::updateCodeModel(CppTools::RawProjectParts &rpps)
|
CppTools::RawProjectParts ServerModeReader::createRawProjectParts() const
|
||||||
{
|
{
|
||||||
|
CppTools::RawProjectParts rpps;
|
||||||
|
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
for (const FileGroup *fg : qAsConst(m_fileGroups)) {
|
for (const FileGroup *fg : qAsConst(m_fileGroups)) {
|
||||||
// CMake users worked around Creator's inability of listing header files by creating
|
// 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);
|
: CppTools::ProjectPart::Library);
|
||||||
rpps.append(rpp);
|
rpps.append(rpp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return rpps;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServerModeReader::handleReply(const QVariantMap &data, const QString &inReplyTo)
|
void ServerModeReader::handleReply(const QVariantMap &data, const QString &inReplyTo)
|
||||||
|
@@ -60,7 +60,7 @@ public:
|
|||||||
CMakeConfig takeParsedConfiguration() final;
|
CMakeConfig takeParsedConfiguration() final;
|
||||||
void generateProjectTree(CMakeProjectNode *root,
|
void generateProjectTree(CMakeProjectNode *root,
|
||||||
const QList<const ProjectExplorer::FileNode *> &allFiles) final;
|
const QList<const ProjectExplorer::FileNode *> &allFiles) final;
|
||||||
void updateCodeModel(CppTools::RawProjectParts &rpps) final;
|
CppTools::RawProjectParts createRawProjectParts() const final;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void handleReply(const QVariantMap &data, const QString &inReplyTo);
|
void handleReply(const QVariantMap &data, const QString &inReplyTo);
|
||||||
|
@@ -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 *tcCxx = ToolChainManager::findToolChain(m_parameters.cxxToolChainId);
|
||||||
const ToolChain *tcC = ToolChainManager::findToolChain(m_parameters.cToolChainId);
|
const ToolChain *tcC = ToolChainManager::findToolChain(m_parameters.cToolChainId);
|
||||||
const FileName sysroot = m_parameters.sysRoot;
|
const FileName sysroot = m_parameters.sysRoot;
|
||||||
|
|
||||||
|
CppTools::RawProjectParts rpps;
|
||||||
QHash<QString, QStringList> targetDataCacheCxx;
|
QHash<QString, QStringList> targetDataCacheCxx;
|
||||||
QHash<QString, QStringList> targetDataCacheC;
|
QHash<QString, QStringList> targetDataCacheC;
|
||||||
foreach (const CMakeBuildTarget &cbt, m_buildTargets) {
|
foreach (const CMakeBuildTarget &cbt, m_buildTargets) {
|
||||||
@@ -390,6 +391,8 @@ void TeaLeafReader::updateCodeModel(CppTools::RawProjectParts &rpps)
|
|||||||
: CppTools::ProjectPart::Library);
|
: CppTools::ProjectPart::Library);
|
||||||
rpps.append(rpp);
|
rpps.append(rpp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return rpps;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TeaLeafReader::cleanUpProcess()
|
void TeaLeafReader::cleanUpProcess()
|
||||||
@@ -575,7 +578,7 @@ void TeaLeafReader::processCMakeError()
|
|||||||
|
|
||||||
QStringList TeaLeafReader::getFlagsFor(const CMakeBuildTarget &buildTarget,
|
QStringList TeaLeafReader::getFlagsFor(const CMakeBuildTarget &buildTarget,
|
||||||
QHash<QString, QStringList> &cache,
|
QHash<QString, QStringList> &cache,
|
||||||
Id lang)
|
Id lang) const
|
||||||
{
|
{
|
||||||
// check cache:
|
// check cache:
|
||||||
auto it = cache.constFind(buildTarget.title);
|
auto it = cache.constFind(buildTarget.title);
|
||||||
@@ -594,7 +597,7 @@ QStringList TeaLeafReader::getFlagsFor(const CMakeBuildTarget &buildTarget,
|
|||||||
|
|
||||||
bool TeaLeafReader::extractFlagsFromMake(const CMakeBuildTarget &buildTarget,
|
bool TeaLeafReader::extractFlagsFromMake(const CMakeBuildTarget &buildTarget,
|
||||||
QHash<QString, QStringList> &cache,
|
QHash<QString, QStringList> &cache,
|
||||||
Id lang)
|
Id lang) const
|
||||||
{
|
{
|
||||||
QString flagsPrefix;
|
QString flagsPrefix;
|
||||||
|
|
||||||
@@ -649,7 +652,7 @@ bool TeaLeafReader::extractFlagsFromMake(const CMakeBuildTarget &buildTarget,
|
|||||||
|
|
||||||
bool TeaLeafReader::extractFlagsFromNinja(const CMakeBuildTarget &buildTarget,
|
bool TeaLeafReader::extractFlagsFromNinja(const CMakeBuildTarget &buildTarget,
|
||||||
QHash<QString, QStringList> &cache,
|
QHash<QString, QStringList> &cache,
|
||||||
Id lang)
|
Id lang) const
|
||||||
{
|
{
|
||||||
Q_UNUSED(buildTarget)
|
Q_UNUSED(buildTarget)
|
||||||
if (!cache.isEmpty()) // We fill the cache in one go!
|
if (!cache.isEmpty()) // We fill the cache in one go!
|
||||||
@@ -667,7 +670,7 @@ bool TeaLeafReader::extractFlagsFromNinja(const CMakeBuildTarget &buildTarget,
|
|||||||
// found
|
// found
|
||||||
// Get "all" target's working directory
|
// Get "all" target's working directory
|
||||||
QByteArray ninjaFile;
|
QByteArray ninjaFile;
|
||||||
QString buildNinjaFile = takeBuildTargets().at(0).workingDirectory.toString();
|
QString buildNinjaFile = m_buildTargets.at(0).workingDirectory.toString();
|
||||||
buildNinjaFile += "/build.ninja";
|
buildNinjaFile += "/build.ninja";
|
||||||
QFile buildNinja(buildNinjaFile);
|
QFile buildNinja(buildNinjaFile);
|
||||||
if (buildNinja.exists()) {
|
if (buildNinja.exists()) {
|
||||||
|
@@ -57,7 +57,7 @@ public:
|
|||||||
CMakeConfig takeParsedConfiguration() final;
|
CMakeConfig takeParsedConfiguration() final;
|
||||||
void generateProjectTree(CMakeProjectNode *root,
|
void generateProjectTree(CMakeProjectNode *root,
|
||||||
const QList<const ProjectExplorer::FileNode *> &allFiles) final;
|
const QList<const ProjectExplorer::FileNode *> &allFiles) final;
|
||||||
void updateCodeModel(CppTools::RawProjectParts &rpps) final;
|
CppTools::RawProjectParts createRawProjectParts() const final;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void cleanUpProcess();
|
void cleanUpProcess();
|
||||||
@@ -69,9 +69,9 @@ private:
|
|||||||
void processCMakeOutput();
|
void processCMakeOutput();
|
||||||
void processCMakeError();
|
void processCMakeError();
|
||||||
|
|
||||||
QStringList getFlagsFor(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);
|
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);
|
bool extractFlagsFromNinja(const CMakeBuildTarget &buildTarget, QHash<QString, QStringList> &cache, Core::Id lang) const;
|
||||||
|
|
||||||
Utils::QtcProcess *m_cmakeProcess = nullptr;
|
Utils::QtcProcess *m_cmakeProcess = nullptr;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user