CppTools: Add API to set/query compiler call data

...and make some comparison functions public.

Change-Id: If4c9a95031dece32073ce111484a890230190688
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2014-10-28 12:29:23 +01:00
committed by Fawzi Mohamed
parent bb4a58304d
commit 33359a7922
3 changed files with 62 additions and 17 deletions

View File

@@ -137,6 +137,36 @@ ProjectInfo::ProjectInfo(QPointer<ProjectExplorer::Project> project)
: m_project(project)
{}
bool ProjectInfo::operator ==(const ProjectInfo &other) const
{
return m_project == other.m_project
&& m_projectParts == other.m_projectParts
&& m_compilerCallData == other.m_compilerCallData
&& m_headerPaths == other.m_headerPaths
&& m_sourceFiles == other.m_sourceFiles
&& m_defines == other.m_defines;
}
bool ProjectInfo::operator !=(const ProjectInfo &other) const
{
return !operator ==(other);
}
bool ProjectInfo::definesChanged(const ProjectInfo &other) const
{
return m_defines != other.m_defines;
}
bool ProjectInfo::configurationChanged(const ProjectInfo &other) const
{
return definesChanged(other) || m_headerPaths != other.m_headerPaths;
}
bool ProjectInfo::configurationOrFilesChanged(const ProjectInfo &other) const
{
return configurationChanged(other) || m_sourceFiles != other.m_sourceFiles;
}
bool ProjectInfo::isValid() const
{
return !m_project.isNull();
@@ -193,6 +223,7 @@ void ProjectInfo::clearProjectParts()
m_headerPaths.clear();
m_sourceFiles.clear();
m_defines.clear();
m_compilerCallData.clear();
}
const ProjectPart::HeaderPaths ProjectInfo::headerPaths() const
@@ -210,6 +241,16 @@ const QByteArray ProjectInfo::defines() const
return m_defines;
}
void ProjectInfo::setCompilerCallData(const CompilerCallData &data)
{
m_compilerCallData = data;
}
ProjectInfo::CompilerCallData ProjectInfo::compilerCallData() const
{
return m_compilerCallData;
}
namespace {
class ProjectFileCategorizer
{