Index: qmake/generators/win32/msvc_objectmodel.cpp <+>UTF-8 =================================================================== diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp --- a/qmake/generators/win32/msvc_objectmodel.cpp (revision 98e7a6ae2cc1c44ef7ef801ad3149f7a49b3c8fc) +++ b/qmake/generators/win32/msvc_objectmodel.cpp (date 1607580880799) @@ -1147,11 +1147,15 @@ ShowIncludes = _True; break; } - if (strlen(option) > 8 && second == 't' && third == 'd') { - const QString version = option + 8; - static const QStringList knownVersions = { "14", "17", "latest" }; - if (knownVersions.contains(version)) { - LanguageStandard = "stdcpp" + version; + if (strlen(option) > 5 && second == 't' && third == 'd') { + const QString version = option + 5; + static const QStringList knownCppVersions = { "c++14", "c++17", "c++latest" }; + static const QStringList knownCVersions = { "c11", "c17" }; + if (knownCppVersions.contains(version)) { + LanguageStandard = "stdcpp" + version.mid(3); + break; + } else if (config->CompilerVersion >= NET2019 && knownCVersions.contains(version)) { + LanguageStandard_C = "std" + version; break; } } Index: qmake/generators/win32/msbuild_objectmodel.cpp <+>UTF-8 =================================================================== diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp --- a/qmake/generators/win32/msbuild_objectmodel.cpp (revision 98e7a6ae2cc1c44ef7ef801ad3149f7a49b3c8fc) +++ b/qmake/generators/win32/msbuild_objectmodel.cpp (date 1607567151447) @@ -144,6 +144,7 @@ const char _KeyContainer[] = "KeyContainer"; const char _KeyFile[] = "KeyFile"; const char _LanguageStandard[] = "LanguageStandard"; +const char _LanguageStandard_C[] = "LanguageStandard_C"; const char _LargeAddressAware[] = "LargeAddressAware"; const char _LinkDLL[] = "LinkDLL"; const char _LinkErrorReporting[] = "LinkErrorReporting"; @@ -1483,6 +1484,7 @@ << attrTagT(_MinimalRebuild, tool.MinimalRebuild) << attrTagT(_MultiProcessorCompilation, tool.MultiProcessorCompilation) << attrTagS(_LanguageStandard, tool.LanguageStandard) + << attrTagS(_LanguageStandard_C, tool.LanguageStandard_C) << attrTagS(_ObjectFileName, tool.ObjectFile) << attrTagT(_OmitDefaultLibName, tool.OmitDefaultLibName) << attrTagT(_OmitFramePointers, tool.OmitFramePointers) Index: qmake/generators/win32/msvc_objectmodel.h <+>UTF-8 =================================================================== diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h --- a/qmake/generators/win32/msvc_objectmodel.h (revision 98e7a6ae2cc1c44ef7ef801ad3149f7a49b3c8fc) +++ b/qmake/generators/win32/msvc_objectmodel.h (date 1607567151427) @@ -527,6 +527,7 @@ inlineExpansionOption InlineFunctionExpansion; triState KeepComments; QString LanguageStandard; + QString LanguageStandard_C; triState MinimalRebuild; QString ObjectFile; triState OmitDefaultLibName;