Only show Visual Studio compilers if VS is installed

Task-number: QTCREATORBUG-8487

Change-Id: Ibc812f14cd8e4de765cabf27d23451c06611d372
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
Daniel Teske
2013-01-14 15:31:49 +01:00
parent 6ce9a80afa
commit 104c1f3757
2 changed files with 17 additions and 0 deletions

View File

@@ -440,6 +440,19 @@ QString MsvcToolChainFactory::id() const
return QLatin1String(Constants::MSVC_TOOLCHAIN_ID); return QLatin1String(Constants::MSVC_TOOLCHAIN_ID);
} }
bool MsvcToolChainFactory::checkForVisualStudioInstallation(const QString &vsName)
{
const QSettings vsRegistry(
#ifdef Q_OS_WIN64
QLatin1String("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VS7"),
#else
QLatin1String("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VS7"),
#endif
QSettings::NativeFormat);
return vsRegistry.contains(vsName);
}
QList<ToolChain *> MsvcToolChainFactory::autoDetect() QList<ToolChain *> MsvcToolChainFactory::autoDetect()
{ {
QList<ToolChain *> results; QList<ToolChain *> results;
@@ -501,6 +514,8 @@ QList<ToolChain *> MsvcToolChainFactory::autoDetect()
const int dotPos = vsName.indexOf(QLatin1Char('.')); const int dotPos = vsName.indexOf(QLatin1Char('.'));
if (dotPos == -1) if (dotPos == -1)
continue; continue;
if (!checkForVisualStudioInstallation(vsName))
continue;
const QString path = vsRegistry.value(vsName).toString(); const QString path = vsRegistry.value(vsName).toString();
const int version = vsName.left(dotPos).toInt(); const int version = vsName.left(dotPos).toInt();

View File

@@ -106,6 +106,8 @@ public:
{ return MsvcToolChain::readFromMap(data); } { return MsvcToolChain::readFromMap(data); }
ToolChainConfigWidget *configurationWidget(ToolChain *); ToolChainConfigWidget *configurationWidget(ToolChain *);
private:
static bool checkForVisualStudioInstallation(const QString &vsName);
}; };
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------