support Visual Studio 2015

Task-number: QTBUG-46344
Change-Id: I49c3e2776e65cc83d40d1f5ab3be1365d17242d1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
This commit is contained in:
Joerg Bornemann
2015-06-12 11:30:43 +02:00
parent 483b850aa0
commit f0467f8b01
7 changed files with 33 additions and 8 deletions

View File

@@ -72,7 +72,8 @@ QByteArray GeneratorInfo::generator() const
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2008Flavor || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2008Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2010Flavor || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2010Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2012Flavor || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2012Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor) { || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2015Flavor) {
return "NMake Makefiles"; return "NMake Makefiles";
} else if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) { } else if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) {
if (Utils::HostOsInfo::isWindowsHost()) if (Utils::HostOsInfo::isWindowsHost())
@@ -105,7 +106,8 @@ QString GeneratorInfo::displayName() const
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2008Flavor || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2008Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2010Flavor || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2010Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2012Flavor || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2012Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor) { || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2015Flavor) {
return tr("NMake Generator (%1)").arg(m_kit->displayName()); return tr("NMake Generator (%1)").arg(m_kit->displayName());
} else if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) { } else if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) {
if (Utils::HostOsInfo::isWindowsHost()) if (Utils::HostOsInfo::isWindowsHost())
@@ -140,7 +142,8 @@ QList<GeneratorInfo> GeneratorInfo::generatorInfosFor(ProjectExplorer::Kit *k, N
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2008Flavor || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2008Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2010Flavor || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2010Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2012Flavor || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2012Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor) { || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2015Flavor) {
if (hasCodeBlocks) if (hasCodeBlocks)
results << GeneratorInfo(k); results << GeneratorInfo(k);
} else if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) { } else if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) {

View File

@@ -761,6 +761,8 @@ static QByteArray msvcRunTime(const Abi::OSFlavor flavour)
return "MSVCR110"; return "MSVCR110";
case Abi::WindowsMsvc2013Flavor: case Abi::WindowsMsvc2013Flavor:
return "MSVCR120"; return "MSVCR120";
case Abi::WindowsMsvc2015Flavor:
return "MSVCR140";
default: default:
break; break;
} }

View File

@@ -168,6 +168,9 @@ static QList<Abi> parseCoffHeader(const QByteArray &data)
case 12: case 12:
flavor = Abi::WindowsMsvc2013Flavor; flavor = Abi::WindowsMsvc2013Flavor;
break; break;
case 14:
flavor = Abi::WindowsMsvc2015Flavor;
break;
default: // Keep unknown flavor default: // Keep unknown flavor
if (minorLinker != 0) if (minorLinker != 0)
flavor = Abi::WindowsMSysFlavor; // MSVC seems to avoid using minor numbers flavor = Abi::WindowsMSysFlavor; // MSVC seems to avoid using minor numbers
@@ -414,6 +417,8 @@ Abi::Abi(const QString &abiString) :
m_osFlavor = WindowsMsvc2012Flavor; m_osFlavor = WindowsMsvc2012Flavor;
else if (abiParts.at(2) == QLatin1String("msvc2013") && m_os == WindowsOS) else if (abiParts.at(2) == QLatin1String("msvc2013") && m_os == WindowsOS)
m_osFlavor = WindowsMsvc2013Flavor; m_osFlavor = WindowsMsvc2013Flavor;
else if (abiParts.at(2) == QLatin1String("msvc2015") && m_os == WindowsOS)
m_osFlavor = WindowsMsvc2015Flavor;
else if (abiParts.at(2) == QLatin1String("msys") && m_os == WindowsOS) else if (abiParts.at(2) == QLatin1String("msys") && m_os == WindowsOS)
m_osFlavor = WindowsMSysFlavor; m_osFlavor = WindowsMSysFlavor;
else if (abiParts.at(2) == QLatin1String("ce") && m_os == WindowsOS) else if (abiParts.at(2) == QLatin1String("ce") && m_os == WindowsOS)
@@ -674,6 +679,8 @@ QString Abi::toString(const OSFlavor &of)
return QLatin1String("msvc2012"); return QLatin1String("msvc2012");
case Abi::WindowsMsvc2013Flavor: case Abi::WindowsMsvc2013Flavor:
return QLatin1String("msvc2013"); return QLatin1String("msvc2013");
case Abi::WindowsMsvc2015Flavor:
return QLatin1String("msvc2015");
case Abi::WindowsMSysFlavor: case Abi::WindowsMSysFlavor:
return QLatin1String("msys"); return QLatin1String("msys");
case Abi::WindowsCEFlavor: case Abi::WindowsCEFlavor:
@@ -724,8 +731,8 @@ QList<Abi::OSFlavor> Abi::flavorsForOs(const Abi::OS &o)
return result << GenericUnixFlavor << SolarisUnixFlavor << UnknownFlavor; return result << GenericUnixFlavor << SolarisUnixFlavor << UnknownFlavor;
case WindowsOS: case WindowsOS:
return result << WindowsMsvc2005Flavor << WindowsMsvc2008Flavor << WindowsMsvc2010Flavor return result << WindowsMsvc2005Flavor << WindowsMsvc2008Flavor << WindowsMsvc2010Flavor
<< WindowsMsvc2012Flavor << WindowsMsvc2013Flavor << WindowsMSysFlavor << WindowsMsvc2012Flavor << WindowsMsvc2013Flavor << WindowsMsvc2015Flavor
<< WindowsCEFlavor << UnknownFlavor; << WindowsMSysFlavor << WindowsCEFlavor << UnknownFlavor;
case VxWorks: case VxWorks:
return result << VxWorksFlavor << UnknownFlavor; return result << VxWorksFlavor << UnknownFlavor;
case UnknownOS: case UnknownOS:

View File

@@ -90,6 +90,7 @@ public:
WindowsMsvc2010Flavor, WindowsMsvc2010Flavor,
WindowsMsvc2012Flavor, WindowsMsvc2012Flavor,
WindowsMsvc2013Flavor, WindowsMsvc2013Flavor,
WindowsMsvc2015Flavor,
WindowsMSysFlavor, WindowsMSysFlavor,
WindowsCEFlavor, WindowsCEFlavor,

View File

@@ -101,7 +101,8 @@ ToolChain::CompilerFlags AbstractMsvcToolChain::compilerFlags(const QStringList
if (m_abi.osFlavor() == Abi::WindowsMsvc2010Flavor if (m_abi.osFlavor() == Abi::WindowsMsvc2010Flavor
|| m_abi.osFlavor() == Abi::WindowsMsvc2012Flavor || m_abi.osFlavor() == Abi::WindowsMsvc2012Flavor
|| m_abi.osFlavor() == Abi::WindowsMsvc2013Flavor) || m_abi.osFlavor() == Abi::WindowsMsvc2013Flavor
|| m_abi.osFlavor() == Abi::WindowsMsvc2015Flavor)
flags |= StandardCxx11; flags |= StandardCxx11;
return flags; return flags;

View File

@@ -135,7 +135,9 @@ static Abi findAbiOfMsvc(MsvcToolChain::Type type, MsvcToolChain::Platform platf
else if (version == QLatin1String("v7.0A") || version == QLatin1String("v7.1")) else if (version == QLatin1String("v7.0A") || version == QLatin1String("v7.1"))
msvcVersionString = QLatin1String("10.0"); msvcVersionString = QLatin1String("10.0");
} }
if (msvcVersionString.startsWith(QLatin1String("12."))) if (msvcVersionString.startsWith(QLatin1String("14.")))
flavor = Abi::WindowsMsvc2015Flavor;
else if (msvcVersionString.startsWith(QLatin1String("12.")))
flavor = Abi::WindowsMsvc2013Flavor; flavor = Abi::WindowsMsvc2013Flavor;
else if (msvcVersionString.startsWith(QLatin1String("11."))) else if (msvcVersionString.startsWith(QLatin1String("11.")))
flavor = Abi::WindowsMsvc2012Flavor; flavor = Abi::WindowsMsvc2012Flavor;
@@ -404,6 +406,14 @@ QList<Utils::FileName> MsvcToolChain::suggestedMkspecList() const
<< Utils::FileName::fromLatin1("winrt-x64-msvc2013") << Utils::FileName::fromLatin1("winrt-x64-msvc2013")
<< Utils::FileName::fromLatin1("win32-msvc2012") << Utils::FileName::fromLatin1("win32-msvc2012")
<< Utils::FileName::fromLatin1("win32-msvc2010"); << Utils::FileName::fromLatin1("win32-msvc2010");
case Abi::WindowsMsvc2015Flavor:
return QList<Utils::FileName>()
<< Utils::FileName::fromLatin1("win32-msvc2015")
<< Utils::FileName::fromLatin1("winphone-arm-msvc2015")
<< Utils::FileName::fromLatin1("winphone-x86-msvc2015")
<< Utils::FileName::fromLatin1("winrt-arm-msvc2015")
<< Utils::FileName::fromLatin1("winrt-x86-msvc2015")
<< Utils::FileName::fromLatin1("winrt-x64-msvc2015");
default: default:
break; break;
} }

View File

@@ -257,7 +257,8 @@ QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplor
if (!m.isEmpty()) if (!m.isEmpty())
data.insert(QLatin1String(CPP_COMPILERPATHBYLANGUAGE), m); data.insert(QLatin1String(CPP_COMPILERPATHBYLANGUAGE), m);
if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor) { if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2015Flavor) {
const QLatin1String flags("/FS"); const QLatin1String flags("/FS");
data.insert(QLatin1String(CPP_PLATFORMCFLAGS), flags); data.insert(QLatin1String(CPP_PLATFORMCFLAGS), flags);
data.insert(QLatin1String(CPP_PLATFORMCXXFLAGS), flags); data.insert(QLatin1String(CPP_PLATFORMCXXFLAGS), flags);