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; }