Toolchains: Fix auto-detection for clang-cl

This broke in aef8255ba0, which removed the collection of MSVC
toolchains in a global variable for clang-cl to inspect.

Change-Id: I949aa0a098ed307d264e8fe23625586018507d00
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2020-06-22 17:16:32 +02:00
parent 59ddc75b59
commit e1c4fcaab5

View File

@@ -813,6 +813,7 @@ MsvcToolChain::MsvcToolChain(Core::Id typeId)
{
setDisplayName("Microsoft Visual C++ Compiler");
setTypeDisplayName(tr("MSVC"));
addToAvailableMsvcToolchains(this);
}
void MsvcToolChain::inferWarningsForLevel(int warningLevel, WarningFlags &flags)
@@ -931,8 +932,10 @@ QVariantMap MsvcToolChain::toMap() const
bool MsvcToolChain::fromMap(const QVariantMap &data)
{
if (!ToolChain::fromMap(data))
if (!ToolChain::fromMap(data)) {
g_availableMsvcToolchains.removeOne(this);
return false;
}
m_vcvarsBat = QDir::fromNativeSeparators(data.value(QLatin1String(varsBatKeyC)).toString());
m_varsBatArg = data.value(QLatin1String(varsBatArgKeyC)).toString();
@@ -948,8 +951,8 @@ bool MsvcToolChain::fromMap(const QVariantMap &data)
m_varsBatArg));
const bool valid = !m_vcvarsBat.isEmpty() && m_abi.isValid();
if (valid)
addToAvailableMsvcToolchains(this);
if (!valid)
g_availableMsvcToolchains.removeOne(this);
return valid;
}