forked from qt-creator/qt-creator
MSVC: Register toolchains also for C language
Change-Id: I1abaecc53be9e87b88178bc044e3352ddeb5c4e6 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
committed by
Orgad Shaneh
parent
a9c967263e
commit
36ecee17fe
@@ -573,7 +573,7 @@ MsvcToolChainFactory::MsvcToolChainFactory()
|
|||||||
|
|
||||||
QSet<ToolChain::Language> MsvcToolChainFactory::supportedLanguages() const
|
QSet<ToolChain::Language> MsvcToolChainFactory::supportedLanguages() const
|
||||||
{
|
{
|
||||||
return { ProjectExplorer::ToolChain::Language::Cxx };
|
return { ToolChain::Language::C, ToolChain::Language::Cxx };
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MsvcToolChainFactory::checkForVisualStudioInstallation(const QString &vsName)
|
bool MsvcToolChainFactory::checkForVisualStudioInstallation(const QString &vsName)
|
||||||
@@ -617,24 +617,32 @@ QString MsvcToolChainFactory::vcVarsBatFor(const QString &basePath, MsvcToolChai
|
|||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
static ToolChain *findOrCreateToolChain(const QList<ToolChain *> &alreadyKnown,
|
static QList<ToolChain *> findOrCreateToolChain(
|
||||||
|
const QList<ToolChain *> &alreadyKnown,
|
||||||
const QString &name, const Abi &abi,
|
const QString &name, const Abi &abi,
|
||||||
const QString &varsBat, const QString &varsBatArg,
|
const QString &varsBat, const QString &varsBatArg,
|
||||||
ToolChain::Detection d = ToolChain::ManualDetection)
|
ToolChain::Detection d = ToolChain::ManualDetection)
|
||||||
{
|
{
|
||||||
ToolChain *tc = Utils::findOrDefault(alreadyKnown,
|
QList<ToolChain *> res;
|
||||||
[&varsBat, &varsBatArg, &abi](ToolChain *tc) -> bool {
|
for (auto language: {ToolChain::Language::C, ToolChain::Language::Cxx}) {
|
||||||
|
ToolChain *tc = Utils::findOrDefault(
|
||||||
|
alreadyKnown,
|
||||||
|
[&varsBat, &varsBatArg, &abi, &language](ToolChain *tc) -> bool {
|
||||||
if (tc->typeId() != Constants::MSVC_TOOLCHAIN_TYPEID)
|
if (tc->typeId() != Constants::MSVC_TOOLCHAIN_TYPEID)
|
||||||
return false;
|
return false;
|
||||||
if (tc->targetAbi() != abi)
|
if (tc->targetAbi() != abi)
|
||||||
return false;
|
return false;
|
||||||
|
if (tc->language() != language)
|
||||||
|
return false;
|
||||||
auto mtc = static_cast<MsvcToolChain *>(tc);
|
auto mtc = static_cast<MsvcToolChain *>(tc);
|
||||||
return mtc->varsBat() == varsBat
|
return mtc->varsBat() == varsBat
|
||||||
&& mtc->varsBatArg() == varsBatArg;
|
&& mtc->varsBatArg() == varsBatArg;
|
||||||
});
|
});
|
||||||
if (!tc)
|
if (!tc)
|
||||||
tc = new MsvcToolChain(name, abi, varsBat, varsBatArg, ToolChain::Language::Cxx, d);
|
tc = new MsvcToolChain(name, abi, varsBat, varsBatArg, language, d);
|
||||||
return tc;
|
res << tc;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Detect build tools introduced with MSVC2015
|
// Detect build tools introduced with MSVC2015
|
||||||
@@ -670,10 +678,11 @@ static void detectCppBuildTools(QList<ToolChain *> *list)
|
|||||||
const Entry &e = entries[i];
|
const Entry &e = entries[i];
|
||||||
const Abi abi(e.architecture, Abi::WindowsOS, Abi::WindowsMsvc2015Flavor,
|
const Abi abi(e.architecture, Abi::WindowsOS, Abi::WindowsMsvc2015Flavor,
|
||||||
e.format, e.wordSize);
|
e.format, e.wordSize);
|
||||||
|
for (auto language: {ToolChain::Language::C, ToolChain::Language::Cxx}) {
|
||||||
list->append(new MsvcToolChain(name + QLatin1String(e.postFix), abi,
|
list->append(new MsvcToolChain(name + QLatin1String(e.postFix), abi,
|
||||||
vcVarsBat, QLatin1String(e.varsBatArg),
|
vcVarsBat, QLatin1String(e.varsBatArg),
|
||||||
ToolChain::Language::Cxx,
|
language, ToolChain::AutoDetection));
|
||||||
ToolChain::AutoDetection));
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user