From 28f8bf07cccf4b82a9609795db416f98bdfb4e58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20K=C3=BCmmel?= <syntheticpp@gmx.net> Date: Tue, 18 Sep 2012 11:10:52 +0200 Subject: [PATCH] msvctoolchain: x64 and amd64 are the same MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - show cross and native in gui - add missing compilers Change-Id: Id48579d4e5dae3a68ed92c0cd2f41309e4f96753 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Peter Kümmel <syntheticpp@gmx.net> --- src/plugins/projectexplorer/msvctoolchain.cpp | 74 +++++++++++-------- src/plugins/projectexplorer/msvctoolchain.h | 7 +- 2 files changed, 49 insertions(+), 32 deletions(-) diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp index 74dc957bbc3..e038910dd7d 100644 --- a/src/plugins/projectexplorer/msvctoolchain.cpp +++ b/src/plugins/projectexplorer/msvctoolchain.cpp @@ -67,14 +67,16 @@ namespace Internal { static QString platformName(MsvcToolChain::Platform t) { switch (t) { - case MsvcToolChain::s32: + case MsvcToolChain::x86: return QLatin1String(" (x86)"); - case MsvcToolChain::s64: - return QLatin1String(" (x64)"); - case MsvcToolChain::ia64: - return QLatin1String(" (ia64)"); case MsvcToolChain::amd64: return QLatin1String(" (amd64)"); + case MsvcToolChain::x86_amd64: + return QLatin1String(" (x86_amd64)"); + case MsvcToolChain::ia64: + return QLatin1String(" (ia64)"); + case MsvcToolChain::x86_ia64: + return QLatin1String(" (x86_ia64)"); } return QString(); } @@ -87,14 +89,15 @@ static Abi findAbiOfMsvc(MsvcToolChain::Type type, MsvcToolChain::Platform platf switch (platform) { - case ProjectExplorer::Internal::MsvcToolChain::s32: + case ProjectExplorer::Internal::MsvcToolChain::x86: wordWidth = 32; break; case ProjectExplorer::Internal::MsvcToolChain::ia64: + case ProjectExplorer::Internal::MsvcToolChain::x86_ia64: arch = Abi::ItaniumArchitecture; break; - case ProjectExplorer::Internal::MsvcToolChain::s64: case ProjectExplorer::Internal::MsvcToolChain::amd64: + case ProjectExplorer::Internal::MsvcToolChain::x86_amd64: break; }; @@ -462,16 +465,22 @@ QList<ToolChain *> MsvcToolChainFactory::autoDetect() continue; QList<ToolChain *> tmp; - tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::s32), - findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::s32, version), + tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::x86), + findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::x86, version), fi.absoluteFilePath(), QLatin1String("/x86"), true)); // Add all platforms - tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::s64), - findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::s64, version), - fi.absoluteFilePath(), QLatin1String("/x64"), true)); + tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::amd64), + findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::amd64, version), + fi.absoluteFilePath(), QLatin1String("/amd64"), true)); + tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::x86_amd64), + findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::x86_amd64, version), + fi.absoluteFilePath(), QLatin1String("/x86_amd64"), true)); tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::ia64), findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::ia64, version), fi.absoluteFilePath(), QLatin1String("/ia64"), true)); + tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::x86_ia64), + findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::x86_ia64, version), + fi.absoluteFilePath(), QLatin1String("/x86_ia64"), true)); // Make sure the default is front. if (folder == defaultSdkPath) results = tmp + results; @@ -499,25 +508,28 @@ QList<ToolChain *> MsvcToolChainFactory::autoDetect() // Check existence of various install scripts const QString vcvars32bat = path + QLatin1String("bin\\vcvars32.bat"); if (QFileInfo(vcvars32bat).isFile()) - results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::s32), - findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::s32, vsName), + results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::x86), + findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::x86, vsName), vcvars32bat, QString(), true)); if (version >= 10) { // Just one common file const QString vcvarsAllbat = path + QLatin1String("vcvarsall.bat"); if (QFileInfo(vcvarsAllbat).isFile()) { - results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::s32), - findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::s32, vsName), + results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::x86), + findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::x86, vsName), vcvarsAllbat, QLatin1String("x86"), true)); results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::amd64), findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::amd64, vsName), vcvarsAllbat, QLatin1String("amd64"), true)); - results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::s64), - findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::s64, vsName), - vcvarsAllbat, QLatin1String("x64"), true)); + results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::x86_amd64), + findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::x86_amd64, vsName), + vcvarsAllbat, QLatin1String("x86_amd64"), true)); results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::ia64), findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::ia64, vsName), vcvarsAllbat, QLatin1String("ia64"), true)); + results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::x86_ia64), + findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::x86_ia64, vsName), + vcvarsAllbat, QString("x86_ia64"), true)); } else { qWarning("Unable to find MSVC setup script %s in version %d", qPrintable(vcvarsAllbat), version); } @@ -528,21 +540,21 @@ QList<ToolChain *> MsvcToolChainFactory::autoDetect() results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::amd64), findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::amd64, vsName), vcvarsAmd64bat, QString(), true)); - const QString vcvarsAmd64bat2 = path + QLatin1String("bin\\vcvarsx86_amd64.bat"); - if (QFileInfo(vcvarsAmd64bat2).isFile()) - results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::amd64), - findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::amd64, vsName), - vcvarsAmd64bat2, QString(), true)); + const QString vcvarsX86_amd64bat = path + QLatin1String("bin\\vcvarsx86_amd64.bat"); + if (QFileInfo(vcvarsX86_amd64bat).isFile()) + results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::x86_amd64), + findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::x86_amd64, vsName), + vcvarsX86_amd64bat, QString(), true)); const QString vcvars64bat = path + QLatin1String("bin\\vcvars64.bat"); if (QFileInfo(vcvars64bat).isFile()) - results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::s64), - findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::s64, vsName), + results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::amd64), + findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::amd64, vsName), vcvars64bat, QString(), true)); - const QString vcvarsIA64bat = path + QLatin1String("bin\\vcvarsx86_ia64.bat"); - if (QFileInfo(vcvarsIA64bat).isFile()) - results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::ia64), - findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::ia64, vsName), - vcvarsIA64bat, QString(), true)); + const QString vcvarsX86_ia64bat = path + QLatin1String("bin\\vcvarsx86_ia64.bat"); + if (QFileInfo(vcvarsX86_ia64bat).isFile()) + results.append(new MsvcToolChain(generateDisplayName(vsName, MsvcToolChain::VS, MsvcToolChain::x86_ia64), + findAbiOfMsvc(MsvcToolChain::VS, MsvcToolChain::x86_ia64, vsName), + vcvarsX86_ia64bat, QString(), true)); } } diff --git a/src/plugins/projectexplorer/msvctoolchain.h b/src/plugins/projectexplorer/msvctoolchain.h index bfec69250f1..33b8c0aa202 100644 --- a/src/plugins/projectexplorer/msvctoolchain.h +++ b/src/plugins/projectexplorer/msvctoolchain.h @@ -50,7 +50,12 @@ class MsvcToolChain : public AbstractMsvcToolChain { public: enum Type { WindowsSDK, VS }; - enum Platform { s32, s64, ia64, amd64 }; + enum Platform { x86, // x86 -> x86 + amd64, // amd64 -> amd64 + ia64, // ia64 -> ia64 + x86_amd64, // x86 -> amd64 + x86_ia64, // x86 -> ia64 + }; MsvcToolChain(const QString &name, const Abi &abi, const QString &varsBat, const QString &varsBatArg, bool autodetect = false); -- GitLab