qmake: Support Visual Studio 2022
Extend the detection of the MSCV_VER variable and make VS 2022 known to the vcxproj generator. [ChangeLog][qmake] Added support for Visual Studio 2022. Fixes: QTBUG-97975 Change-Id: Id2c0a0b7800f721e9e34189f0a40ba4830283578 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 1c880752eb891e77c3d3b5ffbf60fbb9109120fb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
87f0096c80
commit
de2395d757
@ -34,4 +34,9 @@ greaterThan(QMAKE_MSC_VER, 1919) {
|
|||||||
MSVC_VER = 16.0
|
MSVC_VER = 16.0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
greaterThan(QMAKE_MSC_VER, 1929) {
|
||||||
|
# Visual Studio 2022 (17.0) / Visual C++ 19.30 and up
|
||||||
|
MSVC_VER = 17.0
|
||||||
|
}
|
||||||
|
|
||||||
!isEmpty(COMPAT_MKSPEC):!$$COMPAT_MKSPEC: CONFIG += $$COMPAT_MKSPEC
|
!isEmpty(COMPAT_MKSPEC):!$$COMPAT_MKSPEC: CONFIG += $$COMPAT_MKSPEC
|
||||||
|
@ -124,4 +124,9 @@ greaterThan(QMAKE_MSC_VER, 1927) {
|
|||||||
QMAKE_CFLAGS_C17 = /std:c17
|
QMAKE_CFLAGS_C17 = /std:c17
|
||||||
}
|
}
|
||||||
|
|
||||||
|
greaterThan(QMAKE_MSC_VER, 1929) {
|
||||||
|
# Visual Studio 2022 (17.0) / Visual C++ 19.30 and up
|
||||||
|
MSVC_VER = 17.0
|
||||||
|
}
|
||||||
|
|
||||||
!isEmpty(COMPAT_MKSPEC):!$$COMPAT_MKSPEC: CONFIG += $$COMPAT_MKSPEC
|
!isEmpty(COMPAT_MKSPEC):!$$COMPAT_MKSPEC: CONFIG += $$COMPAT_MKSPEC
|
||||||
|
@ -50,6 +50,8 @@ DotNET vsVersionFromString(const ProString &versionString)
|
|||||||
int versionMajor = versionView.left(idx).toInt();
|
int versionMajor = versionView.left(idx).toInt();
|
||||||
int versionMinor = versionView.mid(idx + 1).toInt();
|
int versionMinor = versionView.mid(idx + 1).toInt();
|
||||||
|
|
||||||
|
if (versionMajor == 17)
|
||||||
|
return NET2022;
|
||||||
if (versionMajor == 16)
|
if (versionMajor == 16)
|
||||||
return NET2019;
|
return NET2019;
|
||||||
if (versionMajor == 15)
|
if (versionMajor == 15)
|
||||||
|
@ -53,7 +53,8 @@ enum DotNET {
|
|||||||
NET2013 = 0xc0,
|
NET2013 = 0xc0,
|
||||||
NET2015 = 0xd0,
|
NET2015 = 0xd0,
|
||||||
NET2017 = 0xe0,
|
NET2017 = 0xe0,
|
||||||
NET2019
|
NET2019,
|
||||||
|
NET2022
|
||||||
};
|
};
|
||||||
|
|
||||||
DotNET vsVersionFromString(const ProString &versionString);
|
DotNET vsVersionFromString(const ProString &versionString);
|
||||||
|
@ -78,6 +78,8 @@ const char _slnHeader141[] = "Microsoft Visual Studio Solution File, Format
|
|||||||
"\n# Visual Studio 15";
|
"\n# Visual Studio 15";
|
||||||
const char _slnHeader142[] = "Microsoft Visual Studio Solution File, Format Version 12.00"
|
const char _slnHeader142[] = "Microsoft Visual Studio Solution File, Format Version 12.00"
|
||||||
"\n# Visual Studio Version 16";
|
"\n# Visual Studio Version 16";
|
||||||
|
const char _slnHeader143[] = "Microsoft Visual Studio Solution File, Format Version 12.00"
|
||||||
|
"\n# Visual Studio Version 17";
|
||||||
// The following UUID _may_ change for later servicepacks...
|
// The following UUID _may_ change for later servicepacks...
|
||||||
// If so we need to search through the registry at
|
// If so we need to search through the registry at
|
||||||
// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Projects
|
// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Projects
|
||||||
@ -311,6 +313,8 @@ QString VcprojGenerator::retrievePlatformToolSet() const
|
|||||||
return QStringLiteral("v141");
|
return QStringLiteral("v141");
|
||||||
case NET2019:
|
case NET2019:
|
||||||
return QStringLiteral("v142");
|
return QStringLiteral("v142");
|
||||||
|
case NET2022:
|
||||||
|
return QStringLiteral("v143");
|
||||||
default:
|
default:
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
@ -538,6 +542,9 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (vcProject.Configuration.CompilerVersion) {
|
switch (vcProject.Configuration.CompilerVersion) {
|
||||||
|
case NET2022:
|
||||||
|
t << _slnHeader143;
|
||||||
|
break;
|
||||||
case NET2019:
|
case NET2019:
|
||||||
t << _slnHeader142;
|
t << _slnHeader142;
|
||||||
break;
|
break;
|
||||||
@ -915,6 +922,9 @@ void VcprojGenerator::initProject()
|
|||||||
// Own elements -----------------------------
|
// Own elements -----------------------------
|
||||||
vcProject.Name = project->first("QMAKE_ORIG_TARGET").toQString();
|
vcProject.Name = project->first("QMAKE_ORIG_TARGET").toQString();
|
||||||
switch (vcProject.Configuration.CompilerVersion) {
|
switch (vcProject.Configuration.CompilerVersion) {
|
||||||
|
case NET2022:
|
||||||
|
vcProject.Version = "17.00";
|
||||||
|
break;
|
||||||
case NET2019:
|
case NET2019:
|
||||||
vcProject.Version = "16.00";
|
vcProject.Version = "16.00";
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user