aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2019-03-15 12:57:57 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2019-03-15 15:03:47 +0000
commit206debe875417c9c7740eefe37349caecc64f164 (patch)
tree239152c66c3299c5887968438df61e4a22f097c5 /src
parent216b592da415e78b805204b58b5e15a208338004 (diff)
Fix version detection for MSVC 2017
The version number for recent MSVC2017 installation has changed to the format \d+\.\d+\.\d+\.\d+ and the second number is not guaranteed to be a zero. Change-Id: I13728d2a5ea3162c3ff29558757cd576a83f4983 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/app/qbs-setup-toolchains/msvcprobe.cpp4
-rw-r--r--src/lib/corelib/tools/version.cpp2
-rw-r--r--src/lib/corelib/tools/visualstudioversioninfo.cpp3
3 files changed, 5 insertions, 4 deletions
diff --git a/src/app/qbs-setup-toolchains/msvcprobe.cpp b/src/app/qbs-setup-toolchains/msvcprobe.cpp
index 3bb99fd22..a6292d860 100644
--- a/src/app/qbs-setup-toolchains/msvcprobe.cpp
+++ b/src/app/qbs-setup-toolchains/msvcprobe.cpp
@@ -295,7 +295,7 @@ static std::vector<MSVC> installedMSVCs()
installInfos = installedMSVCsFromRegistry();
for (const MSVCInstallInfo &installInfo : installInfos) {
MSVC msvc;
- msvc.internalVsVersion = Version::fromString(installInfo.version);
+ msvc.internalVsVersion = Version::fromString(installInfo.version, true);
if (!msvc.internalVsVersion.isValid())
continue;
@@ -307,7 +307,7 @@ static std::vector<MSVC> installedMSVCs()
}
msvc.version = QString::number(Internal::VisualStudioVersionInfo(
- Version::fromString(installInfo.version)).marketingVersion());
+ msvc.internalVsVersion).marketingVersion());
if (msvc.version.isEmpty()) {
qbsWarning() << Tr::tr("Unknown MSVC version %1 found.").arg(installInfo.version);
continue;
diff --git a/src/lib/corelib/tools/version.cpp b/src/lib/corelib/tools/version.cpp
index ccc9dd799..7ea2fda75 100644
--- a/src/lib/corelib/tools/version.cpp
+++ b/src/lib/corelib/tools/version.cpp
@@ -94,7 +94,7 @@ Version Version::fromString(const QString &versionString, bool buildNumberAllowe
for (int i = 0; i < 2; ++i)
pattern += QStringLiteral("(?:\\.(\\d+))?"); // Followed by a dot and a number up to two times.
if (buildNumberAllowed)
- pattern += QStringLiteral("(?:-(\\d+))?"); // And possibly a dash followed by the build number.
+ pattern += QStringLiteral("(?:[-.](\\d+))?"); // And possibly a dash or dot followed by the build number.
QRegExp rex(pattern);
if (!rex.exactMatch(versionString))
return Version{};
diff --git a/src/lib/corelib/tools/visualstudioversioninfo.cpp b/src/lib/corelib/tools/visualstudioversioninfo.cpp
index 5383dcae0..008ab115d 100644
--- a/src/lib/corelib/tools/visualstudioversioninfo.cpp
+++ b/src/lib/corelib/tools/visualstudioversioninfo.cpp
@@ -53,7 +53,8 @@ VisualStudioVersionInfo::VisualStudioVersionInfo()
VisualStudioVersionInfo::VisualStudioVersionInfo(const Version &version)
: m_version(version)
{
- QBS_CHECK(version.minorVersion() == 0 || version == Version(7, 1));
+ QBS_CHECK(version.minorVersion() == 0 || version == Version(7, 1)
+ || version.majorVersion() >= 15);
}
std::set<VisualStudioVersionInfo> VisualStudioVersionInfo::knownVersions()