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
|
||||
}
|
||||
|
||||
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
|
||||
|
@ -124,4 +124,9 @@ greaterThan(QMAKE_MSC_VER, 1927) {
|
||||
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
|
||||
|
@ -50,6 +50,8 @@ DotNET vsVersionFromString(const ProString &versionString)
|
||||
int versionMajor = versionView.left(idx).toInt();
|
||||
int versionMinor = versionView.mid(idx + 1).toInt();
|
||||
|
||||
if (versionMajor == 17)
|
||||
return NET2022;
|
||||
if (versionMajor == 16)
|
||||
return NET2019;
|
||||
if (versionMajor == 15)
|
||||
|
@ -53,7 +53,8 @@ enum DotNET {
|
||||
NET2013 = 0xc0,
|
||||
NET2015 = 0xd0,
|
||||
NET2017 = 0xe0,
|
||||
NET2019
|
||||
NET2019,
|
||||
NET2022
|
||||
};
|
||||
|
||||
DotNET vsVersionFromString(const ProString &versionString);
|
||||
|
@ -78,6 +78,8 @@ const char _slnHeader141[] = "Microsoft Visual Studio Solution File, Format
|
||||
"\n# Visual Studio 15";
|
||||
const char _slnHeader142[] = "Microsoft Visual Studio Solution File, Format Version 12.00"
|
||||
"\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...
|
||||
// If so we need to search through the registry at
|
||||
// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Projects
|
||||
@ -311,6 +313,8 @@ QString VcprojGenerator::retrievePlatformToolSet() const
|
||||
return QStringLiteral("v141");
|
||||
case NET2019:
|
||||
return QStringLiteral("v142");
|
||||
case NET2022:
|
||||
return QStringLiteral("v143");
|
||||
default:
|
||||
return QString();
|
||||
}
|
||||
@ -538,6 +542,9 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
|
||||
}
|
||||
|
||||
switch (vcProject.Configuration.CompilerVersion) {
|
||||
case NET2022:
|
||||
t << _slnHeader143;
|
||||
break;
|
||||
case NET2019:
|
||||
t << _slnHeader142;
|
||||
break;
|
||||
@ -915,6 +922,9 @@ void VcprojGenerator::initProject()
|
||||
// Own elements -----------------------------
|
||||
vcProject.Name = project->first("QMAKE_ORIG_TARGET").toQString();
|
||||
switch (vcProject.Configuration.CompilerVersion) {
|
||||
case NET2022:
|
||||
vcProject.Version = "17.00";
|
||||
break;
|
||||
case NET2019:
|
||||
vcProject.Version = "16.00";
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user