From 67a7eba6faf7fdd4f1007dba5ad7cceb0785ae51 Mon Sep 17 00:00:00 2001 From: Yuchen Deng Date: Sun, 20 Oct 2013 23:44:52 +0800 Subject: Add MSVC2013 support Change-Id: I956b5796a67792f826ddc72e7681609372a9c029 Reviewed-by: Tobias Hunger --- src/plugins/projectexplorer/abi.cpp | 14 ++++++++++++-- src/plugins/projectexplorer/abi.h | 1 + src/plugins/projectexplorer/abstractmsvctoolchain.cpp | 3 ++- src/plugins/projectexplorer/msvctoolchain.cpp | 10 +++++++++- 4 files changed, 24 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/plugins/projectexplorer/abi.cpp b/src/plugins/projectexplorer/abi.cpp index 83705825cc..2ce26a195d 100644 --- a/src/plugins/projectexplorer/abi.cpp +++ b/src/plugins/projectexplorer/abi.cpp @@ -162,6 +162,9 @@ static QList parseCoffHeader(const QByteArray &data) case 11: flavor = Abi::WindowsMsvc2012Flavor; break; + case 12: + flavor = Abi::WindowsMsvc2013Flavor; + break; default: // Keep unknown flavor if (minorLinker != 0) flavor = Abi::WindowsMSysFlavor; // MSVC seems to avoid using minor numbers @@ -402,6 +405,8 @@ Abi::Abi(const QString &abiString) : m_osFlavor = WindowsMsvc2010Flavor; else if (abiParts.at(2) == QLatin1String("msvc2012") && m_os == WindowsOS) m_osFlavor = WindowsMsvc2012Flavor; + else if (abiParts.at(2) == QLatin1String("msvc2013") && m_os == WindowsOS) + m_osFlavor = WindowsMsvc2013Flavor; else if (abiParts.at(2) == QLatin1String("msys") && m_os == WindowsOS) m_osFlavor = WindowsMSysFlavor; else if (abiParts.at(2) == QLatin1String("ce") && m_os == WindowsOS) @@ -650,6 +655,8 @@ QString Abi::toString(const OSFlavor &of) return QLatin1String("msvc2010"); case ProjectExplorer::Abi::WindowsMsvc2012Flavor: return QLatin1String("msvc2012"); + case ProjectExplorer::Abi::WindowsMsvc2013Flavor: + return QLatin1String("msvc2013"); case ProjectExplorer::Abi::WindowsMSysFlavor: return QLatin1String("msys"); case ProjectExplorer::Abi::WindowsCEFlavor: @@ -699,7 +706,8 @@ QList Abi::flavorsForOs(const Abi::OS &o) return result << GenericUnixFlavor << SolarisUnixFlavor << UnknownFlavor; case WindowsOS: return result << WindowsMsvc2005Flavor << WindowsMsvc2008Flavor << WindowsMsvc2010Flavor - << WindowsMsvc2012Flavor << WindowsMSysFlavor << WindowsCEFlavor << UnknownFlavor; + << WindowsMsvc2012Flavor << WindowsMsvc2013Flavor << WindowsMSysFlavor + << WindowsCEFlavor << UnknownFlavor; case UnknownOS: return result << UnknownFlavor; default: @@ -717,7 +725,9 @@ Abi Abi::hostAbi() #if defined (Q_OS_WIN) os = WindowsOS; -#if _MSC_VER == 1700 +#if _MSC_VER == 1800 + subos = WindowsMsvc2013Flavor; +#elif _MSC_VER == 1700 subos = WindowsMsvc2012Flavor; #elif _MSC_VER == 1600 subos = WindowsMsvc2010Flavor; diff --git a/src/plugins/projectexplorer/abi.h b/src/plugins/projectexplorer/abi.h index a805a1be04..473918b918 100644 --- a/src/plugins/projectexplorer/abi.h +++ b/src/plugins/projectexplorer/abi.h @@ -88,6 +88,7 @@ public: WindowsMsvc2008Flavor, WindowsMsvc2010Flavor, WindowsMsvc2012Flavor, + WindowsMsvc2013Flavor, WindowsMSysFlavor, WindowsCEFlavor, diff --git a/src/plugins/projectexplorer/abstractmsvctoolchain.cpp b/src/plugins/projectexplorer/abstractmsvctoolchain.cpp index cf20d23f1b..15ad063896 100644 --- a/src/plugins/projectexplorer/abstractmsvctoolchain.cpp +++ b/src/plugins/projectexplorer/abstractmsvctoolchain.cpp @@ -99,7 +99,8 @@ ToolChain::CompilerFlags AbstractMsvcToolChain::compilerFlags(const QStringList flags &= ~MicrosoftExtensions; if (m_abi.osFlavor() == Abi::WindowsMsvc2010Flavor - || m_abi.osFlavor() == Abi::WindowsMsvc2012Flavor) + || m_abi.osFlavor() == Abi::WindowsMsvc2012Flavor + || m_abi.osFlavor() == Abi::WindowsMsvc2013Flavor) flags |= StandardCxx11; return flags; diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp index e3544f7949..cb0f7f6686 100644 --- a/src/plugins/projectexplorer/msvctoolchain.cpp +++ b/src/plugins/projectexplorer/msvctoolchain.cpp @@ -103,7 +103,9 @@ static Abi findAbiOfMsvc(MsvcToolChain::Type type, MsvcToolChain::Platform platf else if (version == QLatin1String("v7.0A") || version == QLatin1String("v7.1")) msvcVersionString = QLatin1String("10.0"); } - if (msvcVersionString.startsWith(QLatin1String("11."))) + if (msvcVersionString.startsWith(QLatin1String("12."))) + flavor = Abi::WindowsMsvc2013Flavor; + else if (msvcVersionString.startsWith(QLatin1String("11."))) flavor = Abi::WindowsMsvc2012Flavor; else if (msvcVersionString.startsWith(QLatin1String("10."))) flavor = Abi::WindowsMsvc2010Flavor; @@ -359,6 +361,12 @@ QList MsvcToolChain::suggestedMkspecList() const << Utils::FileName::fromString(QLatin1String("win32-msvc2012")) << Utils::FileName::fromString(QLatin1String("win32-msvc2010")); break; + case ProjectExplorer::Abi::WindowsMsvc2013Flavor: + QList() + << Utils::FileName::fromString(QLatin1String("win32-msvc2013")) + << Utils::FileName::fromString(QLatin1String("win32-msvc2012")) + << Utils::FileName::fromString(QLatin1String("win32-msvc2010")); + break; default: break; } -- cgit v1.2.1