QTVersion: Reset toolchain pathes on creator upgrade

Reset the toolchain pathes on creator upgrade. This is necessary
to prevent creator from auto-creating the toolchains found by
reading the settings in the old Qt version configuration which
might override user changes.
This commit is contained in:
Tobias Hunger
2011-03-15 17:23:17 +01:00
parent f5761c9212
commit 9b1da76ca7

View File

@@ -177,33 +177,40 @@ QtVersionManager::QtVersionManager()
// Update from 2.1 or earlier: // Update from 2.1 or earlier:
QString mingwDir = s->value(QLatin1String("MingwDirectory")).toString(); QString mingwDir = s->value(QLatin1String("MingwDirectory")).toString();
if (!mingwDir.isEmpty()) { if (!mingwDir.isEmpty()) {
QFileInfo fi(mingwDir + QLatin1String("/bin/g++.exe"));
if (fi.exists() && fi.isExecutable()) {
ProjectExplorer::MingwToolChain *tc = createToolChain<ProjectExplorer::MingwToolChain>(ProjectExplorer::Constants::MINGW_TOOLCHAIN_ID); ProjectExplorer::MingwToolChain *tc = createToolChain<ProjectExplorer::MingwToolChain>(ProjectExplorer::Constants::MINGW_TOOLCHAIN_ID);
if (tc) { if (tc) {
tc->setCompilerPath(QDir::fromNativeSeparators(mingwDir) + QLatin1String("/bin/gcc.exe")); tc->setCompilerPath(fi.absoluteFilePath());
tc->setDisplayName(tr("MinGW from %1").arg(version->displayName())); tc->setDisplayName(tr("MinGW from %1").arg(version->displayName()));
ProjectExplorer::ToolChainManager::instance()->registerToolChain(tc); ProjectExplorer::ToolChainManager::instance()->registerToolChain(tc);
} }
} }
}
QString mwcDir = s->value(QLatin1String("MwcDirectory")).toString(); QString mwcDir = s->value(QLatin1String("MwcDirectory")).toString();
if (!mwcDir.isEmpty()) { if (!mwcDir.isEmpty()) {
QFileInfo fi(mwcDir + QLatin1String("/x86Build/Symbian_Tools/Command_Line_Tools/mwwinrc.exe"));
if (fi.exists() && fi.isExecutable()) {
WinscwToolChain *tc = createToolChain<WinscwToolChain>(Constants::WINSCW_TOOLCHAIN_ID); WinscwToolChain *tc = createToolChain<WinscwToolChain>(Constants::WINSCW_TOOLCHAIN_ID);
if (tc) { if (tc) {
tc->setCompilerPath(QDir::fromNativeSeparators(mwcDir) tc->setCompilerPath(fi.absoluteFilePath());
+ QLatin1String("/x86Build/Symbian_Tools/Command_Line_Tools/mwwinrc.exe"));
tc->setDisplayName(tr("WINSCW from %1").arg(version->displayName())); tc->setDisplayName(tr("WINSCW from %1").arg(version->displayName()));
ProjectExplorer::ToolChainManager::instance()->registerToolChain(tc); ProjectExplorer::ToolChainManager::instance()->registerToolChain(tc);
} }
} }
}
QString gcceDir = s->value(QLatin1String("GcceDirectory")).toString(); QString gcceDir = s->value(QLatin1String("GcceDirectory")).toString();
if (!gcceDir.isEmpty()) { if (!gcceDir.isEmpty()) {
QFileInfo fi(gcceDir + QLatin1String("/bin/arm-none-symbianelf-g++.exe"));
if (fi.exists() && fi.isExecutable()) {
GcceToolChain *tc = createToolChain<GcceToolChain>(Constants::GCCE_TOOLCHAIN_ID); GcceToolChain *tc = createToolChain<GcceToolChain>(Constants::GCCE_TOOLCHAIN_ID);
if (tc) { if (tc) {
tc->setCompilerPath(QDir::fromNativeSeparators(gcceDir) tc->setCompilerPath(fi.absoluteFilePath());
+ QLatin1String("/bin/arm-none-symbianelf-g++.exe"));
tc->setDisplayName(tr("GCCE from %1").arg(version->displayName())); tc->setDisplayName(tr("GCCE from %1").arg(version->displayName()));
ProjectExplorer::ToolChainManager::instance()->registerToolChain(tc); ProjectExplorer::ToolChainManager::instance()->registerToolChain(tc);
} }
} }
}
m_versions.insert(version->uniqueId(), version); m_versions.insert(version->uniqueId(), version);
} }
@@ -369,6 +376,11 @@ void QtVersionManager::writeVersionsIntoSettings()
s->setValue("autodetectionSource", version->autodetectionSource()); s->setValue("autodetectionSource", version->autodetectionSource());
s->setValue("S60SDKDirectory", version->systemRoot()); s->setValue("S60SDKDirectory", version->systemRoot());
s->setValue(QLatin1String("SBSv2Directory"), version->sbsV2Directory()); s->setValue(QLatin1String("SBSv2Directory"), version->sbsV2Directory());
// Remove obsolete settings: New toolchains would be created at each startup
// otherwise, overriding manually set ones.
s->remove(QLatin1String("MingwDirectory"));
s->remove(QLatin1String("MwcDirectory"));
s->remove(QLatin1String("GcceDirectory"));
++it; ++it;
} }
s->endArray(); s->endArray();