diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2017-02-27 14:37:41 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2017-03-09 13:50:08 +0000 |
commit | 546df418531c75fb4032d723882bc0799b64cfd2 (patch) | |
tree | ad5483e36c3a2740d2ae947788e048a38a2f7e32 /src | |
parent | cee92463f7218d078b4eeea8064b66660785c03c (diff) | |
download | qt-creator-546df418531c75fb4032d723882bc0799b64cfd2.tar.gz |
ProjectPart: Add callGroupId
Do not rely on the projectfile being unique anymore.
Change-Id: I52e63b3ac8aeca43ef70af1d59d1d8612bd3540e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp | 19 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppcodemodelinspectordialog.cpp | 3 | ||||
-rw-r--r-- | src/plugins/cpptools/cppprojectinfogenerator.cpp | 1 | ||||
-rw-r--r-- | src/plugins/cpptools/cpprawprojectpart.cpp | 5 | ||||
-rw-r--r-- | src/plugins/cpptools/cpprawprojectpart.h | 2 | ||||
-rw-r--r-- | src/plugins/cpptools/projectpart.h | 1 | ||||
-rw-r--r-- | src/plugins/qbsprojectmanager/qbsproject.cpp | 5 |
7 files changed, 22 insertions, 14 deletions
diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp index 6ebe83044c..1a31123fc6 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp @@ -340,7 +340,7 @@ static QStringList tweakedArguments(const ProjectPart &projectPart, } static AnalyzeUnits unitsToAnalyzeFromCompilerCallData( - const QHash<QString, ProjectPart::Ptr> &projectFileToProjectPart, + const QHash<QString, ProjectPart::Ptr> &callGroupToProjectPart, const ProjectInfo::CompilerCallData &compilerCallData, const QString &targetTriple) { @@ -350,7 +350,7 @@ static AnalyzeUnits unitsToAnalyzeFromCompilerCallData( foreach (const ProjectInfo::CompilerCallGroup &compilerCallGroup, compilerCallData) { const ProjectPart::Ptr projectPart - = projectFileToProjectPart.value(compilerCallGroup.groupId); + = callGroupToProjectPart.value(compilerCallGroup.groupId); QTC_ASSERT(projectPart, continue); QHashIterator<QString, QList<QStringList> > it(compilerCallGroup.callsPerSourceFile); @@ -398,19 +398,14 @@ static AnalyzeUnits unitsToAnalyzeFromProjectParts(const QVector<ProjectPart::Pt return unitsToAnalyze; } -static QHash<QString, ProjectPart::Ptr> generateProjectFileToProjectPartMapping( +static QHash<QString, ProjectPart::Ptr> generateCallGroupToProjectPartMapping( const QVector<ProjectPart::Ptr> &projectParts) { QHash<QString, ProjectPart::Ptr> mapping; foreach (const ProjectPart::Ptr &projectPart, projectParts) { QTC_ASSERT(projectPart, continue); - QString projectFile = projectPart->projectFile; - if (projectPart->projectFileLine >= 0) - projectFile += ':' + QString::number(projectPart->projectFileLine); - if (projectPart->projectFileColumn >= 0) - projectFile += ':' + QString::number(projectPart->projectFileColumn); - mapping[projectFile] = projectPart; + mapping[projectPart->callGroupId] = projectPart; } return mapping; @@ -425,9 +420,9 @@ AnalyzeUnits ClangStaticAnalyzerRunControl::sortedUnitsToAnalyze() if (compilerCallData.isEmpty()) { units = unitsToAnalyzeFromProjectParts(m_projectInfo.projectParts()); } else { - const QHash<QString, ProjectPart::Ptr> projectFileToProjectPart - = generateProjectFileToProjectPartMapping(m_projectInfo.projectParts()); - units = unitsToAnalyzeFromCompilerCallData(projectFileToProjectPart, + const QHash<QString, ProjectPart::Ptr> callGroupToProjectPart + = generateCallGroupToProjectPartMapping(m_projectInfo.projectParts()); + units = unitsToAnalyzeFromCompilerCallData(callGroupToProjectPart, compilerCallData, m_targetTriple); } diff --git a/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp b/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp index ecff5db57c..834449847c 100644 --- a/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp +++ b/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp @@ -1782,12 +1782,15 @@ void CppCodeModelInspectorDialog::updateProjectPartData(const ProjectPart::Ptr & projectFileLocation += ":" + QString::number(part->projectFileLine); if (part->projectFileColumn > 0) projectFileLocation += ":" + QString::number(part->projectFileColumn); + const QString callGroupId = part->callGroupId.isEmpty() ? QString::fromLatin1("<None>") + : part->callGroupId; KeyValueModel::Table table = KeyValueModel::Table() << qMakePair(QString::fromLatin1("Project Part Name"), part->displayName) << qMakePair(QString::fromLatin1("Project Part File"), projectFileLocation) << qMakePair(QString::fromLatin1("Project Name"), projectName) << qMakePair(QString::fromLatin1("Project File"), projectFilePath) + << qMakePair(QString::fromLatin1("Callgroup Id"), callGroupId) << qMakePair(QString::fromLatin1("Selected For Building"), CMI::Utils::toString(part->selectedForBuilding)) << qMakePair(QString::fromLatin1("Language Version"), diff --git a/src/plugins/cpptools/cppprojectinfogenerator.cpp b/src/plugins/cpptools/cppprojectinfogenerator.cpp index 22c1d4b81c..525cdbf284 100644 --- a/src/plugins/cpptools/cppprojectinfogenerator.cpp +++ b/src/plugins/cpptools/cppprojectinfogenerator.cpp @@ -184,6 +184,7 @@ static ProjectPart::Ptr projectPartFromRawProjectPart(const RawProjectPart &rawP part->projectConfigFile = rawProjectPart.projectConfigFile; part->projectFileLine = rawProjectPart.projectFileLine; part->projectFileColumn = rawProjectPart.projectFileColumn; + part->callGroupId = rawProjectPart.callGroupId; part->qtVersion = rawProjectPart.qtVersion; part->projectDefines = rawProjectPart.projectDefines; part->headerPaths = rawProjectPart.headerPaths; diff --git a/src/plugins/cpptools/cpprawprojectpart.cpp b/src/plugins/cpptools/cpprawprojectpart.cpp index b694548178..a735ac4955 100644 --- a/src/plugins/cpptools/cpprawprojectpart.cpp +++ b/src/plugins/cpptools/cpprawprojectpart.cpp @@ -66,6 +66,11 @@ void RawProjectPart::setConfigFileName(const QString &configFileName) this->projectConfigFile = configFileName; } +void RawProjectPart::setCallGroupId(const QString &id) +{ + callGroupId = id; +} + void RawProjectPart::setQtVersion(ProjectPart::QtVersion qtVersion) { this->qtVersion = qtVersion; diff --git a/src/plugins/cpptools/cpprawprojectpart.h b/src/plugins/cpptools/cpprawprojectpart.h index faa2cfb198..41285ba22f 100644 --- a/src/plugins/cpptools/cpprawprojectpart.h +++ b/src/plugins/cpptools/cpprawprojectpart.h @@ -62,6 +62,7 @@ public: void setProjectFile(const QString &projectFile, int line = -1, int column = -1); void setConfigFileName(const QString &configFileName); + void setCallGroupId(const QString &id); void setQtVersion(ProjectPart::QtVersion qtVersion); @@ -82,6 +83,7 @@ public: int projectFileLine = -1; int projectFileColumn = -1; QString projectConfigFile; // currently only used by the Generic Project Manager + QString callGroupId; QStringList precompiledHeaders; ProjectPartHeaderPaths headerPaths; QByteArray projectDefines; diff --git a/src/plugins/cpptools/projectpart.h b/src/plugins/cpptools/projectpart.h index f2e2783032..b01872f71b 100644 --- a/src/plugins/cpptools/projectpart.h +++ b/src/plugins/cpptools/projectpart.h @@ -108,6 +108,7 @@ public: int projectFileLine = -1; int projectFileColumn = -1; QString projectConfigFile; // currently only used by the Generic Project Manager + QString callGroupId; ProjectFiles files; diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index 22eea05664..8fa8d22e44 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -790,7 +790,7 @@ static CppTools::ProjectFile::Kind cppFileType(const qbs::ArtifactData &sourceFi return CppTools::ProjectFile::Unsupported; } -static QString groupLocationToProjectFile(const qbs::CodeLocation &location) +static QString groupLocationToCallGroupId(const qbs::CodeLocation &location) { return QString::fromLatin1("%1:%2:%3") .arg(location.filePath()) @@ -950,6 +950,7 @@ void QbsProject::updateCppCodeModel() CppTools::RawProjectPart rpp; rpp.setQtVersion(qtVersionForPart); const qbs::PropertyMap &props = grp.properties(); + rpp.setCallGroupId(groupLocationToCallGroupId(grp.location())); QStringList cFlags; QStringList cxxFlags; @@ -1091,7 +1092,7 @@ void QbsProject::updateCppCompilerCallData() continue; CppTools::ProjectInfo::CompilerCallGroup compilerCallGroup; - compilerCallGroup.groupId = groupLocationToProjectFile(group.location()); + compilerCallGroup.groupId = groupLocationToCallGroupId(group.location()); foreach (const qbs::ArtifactData &file, group.allSourceArtifacts()) { const QString &filePath = file.filePath(); |