diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp index f4a6235e767..20817562751 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.cpp +++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp @@ -460,7 +460,6 @@ int ServerModeReader::calculateProgress(const int minRange, const int min, const void ServerModeReader::extractCodeModelData(const QVariantMap &data) { const QVariantList configs = data.value("configurations").toList(); - QTC_CHECK(configs.count() == 1); // FIXME: Support several configurations! for (const QVariant &c : configs) { const QVariantMap &cData = c.toMap(); extractConfigurationData(cData); @@ -842,6 +841,11 @@ void ServerModeReader::addFileGroups(ProjectNode *targetRoot, { QList toList; QSet alreadyListed; + // Files already added by other configurations: + targetRoot->forEachGenericNode([&alreadyListed](const Node *n) { + alreadyListed.insert(n->filePath()); + }); + for (const FileGroup *f : fileGroups) { const QList newSources = Utils::filtered(f->sources, [&alreadyListed](const Utils::FileName &fn) { const int count = alreadyListed.count();