From 0f21515277dc28244f60fb20963804bbf2cbb7d2 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Tue, 27 Mar 2012 15:29:12 +0200 Subject: [PATCH] Fix: do not put in duplicate definitions. Change-Id: Ia3f248d013a1b4f98ad3e85d13cfcf214d3c97c7 Reviewed-by: Eike Ziller --- src/plugins/cpptools/cppmodelmanager.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 7f2030fdb77..4e3b4a8f078 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -812,12 +812,21 @@ QStringList CppModelManager::internalFrameworkPaths() const QByteArray CppModelManager::internalDefinedMacros() const { QByteArray macros; + QSet alreadyIn; QMapIterator 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 defs = part->defines.split('\n'); + foreach (const QByteArray &def, defs) { + if (!alreadyIn.contains(def)) { + macros += def; + macros.append('\n'); + alreadyIn.insert(def); + } + } + } } return macros; }