forked from qt-creator/qt-creator
ToolChains: Stop SDK-tool chains from multiplying
Task-number: QTCREATORBUG-9124 Change-Id: I93b43183e217b63179a9813e39c242a459eca842 Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
@@ -159,6 +159,16 @@ void ToolChainManager::restoreToolChains()
|
|||||||
}
|
}
|
||||||
readTcs.clear();
|
readTcs.clear();
|
||||||
|
|
||||||
|
// Remove TCs configured by the SDK:
|
||||||
|
foreach (ToolChain *tc, tcsToRegister) {
|
||||||
|
for (int i = tcsToCheck.count() - 1; i >= 0; --i) {
|
||||||
|
if (tcsToCheck.at(i)->id() == tc->id()) {
|
||||||
|
delete tcsToCheck.at(i);
|
||||||
|
tcsToCheck.removeAt(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Then auto detect
|
// Then auto detect
|
||||||
QList<ToolChain *> detectedTcs;
|
QList<ToolChain *> detectedTcs;
|
||||||
QList<ToolChainFactory *> factories = ExtensionSystem::PluginManager::getObjects<ToolChainFactory>();
|
QList<ToolChainFactory *> factories = ExtensionSystem::PluginManager::getObjects<ToolChainFactory>();
|
||||||
@@ -179,7 +189,7 @@ void ToolChainManager::restoreToolChains()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
registerToolChain(toStore);
|
tcsToRegister += toStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Keep toolchains that were not rediscovered but are still executable and delete the rest
|
// Keep toolchains that were not rediscovered but are still executable and delete the rest
|
||||||
@@ -189,7 +199,7 @@ void ToolChainManager::restoreToolChains()
|
|||||||
.arg(tc->displayName()).arg(tc->id());
|
.arg(tc->displayName()).arg(tc->id());
|
||||||
delete tc;
|
delete tc;
|
||||||
} else {
|
} else {
|
||||||
registerToolChain(tc);
|
tcsToRegister += tc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -337,6 +347,7 @@ bool ToolChainManager::registerToolChain(ToolChain *tc)
|
|||||||
foreach (ToolChain *current, d->m_toolChains) {
|
foreach (ToolChain *current, d->m_toolChains) {
|
||||||
if (*tc == *current && !tc->isAutoDetected())
|
if (*tc == *current && !tc->isAutoDetected())
|
||||||
return false;
|
return false;
|
||||||
|
QTC_ASSERT(current->id() != tc->id(), return false);
|
||||||
}
|
}
|
||||||
|
|
||||||
d->m_toolChains.append(tc);
|
d->m_toolChains.append(tc);
|
||||||
|
|||||||
Reference in New Issue
Block a user