Fix: do not put in duplicate definitions.

Change-Id: Ia3f248d013a1b4f98ad3e85d13cfcf214d3c97c7
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
This commit is contained in:
Erik Verbruggen
2012-03-27 15:29:12 +02:00
parent c1596926ea
commit 0f21515277

View File

@@ -812,12 +812,21 @@ QStringList CppModelManager::internalFrameworkPaths() const
QByteArray CppModelManager::internalDefinedMacros() const
{
QByteArray macros;
QSet<QByteArray> alreadyIn;
QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(m_projects);
while (it.hasNext()) {
it.next();
ProjectInfo pinfo = it.value();
foreach (const ProjectPart::Ptr &part, pinfo.projectParts())
macros += part->defines;
foreach (const ProjectPart::Ptr &part, pinfo.projectParts()) {
const QList<QByteArray> defs = part->defines.split('\n');
foreach (const QByteArray &def, defs) {
if (!alreadyIn.contains(def)) {
macros += def;
macros.append('\n');
alreadyIn.insert(def);
}
}
}
}
return macros;
}