From 25c1fcbf5195d060244ddfcb6ea78d3dba611a0e Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Mon, 4 Mar 2024 20:48:11 +0200 Subject: [PATCH] Add support for VS 2022 v17.10 / MSVC 14.4x toolset --- Source/Tools/Flax.Build/Platforms/GDK/GDKPlatform.cs | 5 ++++- Source/Tools/Flax.Build/Platforms/UWP/UWPPlatform.cs | 5 ++++- .../Flax.Build/Platforms/Windows/WindowsPlatform.cs | 3 ++- .../Platforms/Windows/WindowsPlatformBase.cs | 11 +++++++++++ .../Platforms/Windows/WindowsToolchainBase.cs | 11 ++++++++++- 5 files changed, 31 insertions(+), 4 deletions(-) diff --git a/Source/Tools/Flax.Build/Platforms/GDK/GDKPlatform.cs b/Source/Tools/Flax.Build/Platforms/GDK/GDKPlatform.cs index 97b619ae0..3a2cfeba7 100644 --- a/Source/Tools/Flax.Build/Platforms/GDK/GDKPlatform.cs +++ b/Source/Tools/Flax.Build/Platforms/GDK/GDKPlatform.cs @@ -31,8 +31,11 @@ namespace Flax.Build.Platforms var toolsets = GetToolsets(); if (!toolsets.ContainsKey(WindowsPlatformToolset.v141) && !toolsets.ContainsKey(WindowsPlatformToolset.v142) && - !toolsets.ContainsKey(WindowsPlatformToolset.v143)) + !toolsets.ContainsKey(WindowsPlatformToolset.v143) && + !toolsets.ContainsKey(WindowsPlatformToolset.v144)) + { _hasRequiredSDKsInstalled = false; + } } } } diff --git a/Source/Tools/Flax.Build/Platforms/UWP/UWPPlatform.cs b/Source/Tools/Flax.Build/Platforms/UWP/UWPPlatform.cs index b017b9175..ded484dc5 100644 --- a/Source/Tools/Flax.Build/Platforms/UWP/UWPPlatform.cs +++ b/Source/Tools/Flax.Build/Platforms/UWP/UWPPlatform.cs @@ -45,8 +45,11 @@ namespace Flax.Build.Platforms var toolsets = GetToolsets(); if (!toolsets.ContainsKey(WindowsPlatformToolset.v141) && !toolsets.ContainsKey(WindowsPlatformToolset.v142) && - !toolsets.ContainsKey(WindowsPlatformToolset.v143)) + !toolsets.ContainsKey(WindowsPlatformToolset.v143) && + !toolsets.ContainsKey(WindowsPlatformToolset.v144)) + { _hasRequiredSDKsInstalled = false; + } } /// diff --git a/Source/Tools/Flax.Build/Platforms/Windows/WindowsPlatform.cs b/Source/Tools/Flax.Build/Platforms/Windows/WindowsPlatform.cs index 4bdf02811..bfae02224 100644 --- a/Source/Tools/Flax.Build/Platforms/Windows/WindowsPlatform.cs +++ b/Source/Tools/Flax.Build/Platforms/Windows/WindowsPlatform.cs @@ -39,7 +39,8 @@ namespace Flax.Build.Platforms if (!toolsets.ContainsKey(WindowsPlatformToolset.v140) && !toolsets.ContainsKey(WindowsPlatformToolset.v141) && !toolsets.ContainsKey(WindowsPlatformToolset.v142) && - !toolsets.ContainsKey(WindowsPlatformToolset.v143)) + !toolsets.ContainsKey(WindowsPlatformToolset.v143) && + !toolsets.ContainsKey(WindowsPlatformToolset.v144)) { Log.Warning("Missing MSVC toolset v140 or later (VS 2015 or later C++ build tools). Cannot build for Windows platform."); _hasRequiredSDKsInstalled = false; diff --git a/Source/Tools/Flax.Build/Platforms/Windows/WindowsPlatformBase.cs b/Source/Tools/Flax.Build/Platforms/Windows/WindowsPlatformBase.cs index 6f4dec915..f038b1e6e 100644 --- a/Source/Tools/Flax.Build/Platforms/Windows/WindowsPlatformBase.cs +++ b/Source/Tools/Flax.Build/Platforms/Windows/WindowsPlatformBase.cs @@ -49,6 +49,11 @@ namespace Flax.Build.Platforms /// Visual Studio 2022 /// v143 = 143, + + /// + /// Visual Studio 2022 (v17.10 and later) + /// + v144 = 144, } /// @@ -240,6 +245,10 @@ namespace Flax.Build.Platforms _toolsets[WindowsPlatformToolset.v142] = toolset; else if (version.Major == 14 && version.Minor / 10 == 3) _toolsets[WindowsPlatformToolset.v143] = toolset; + else if (version.Major == 14 && version.Minor / 10 == 4) + _toolsets[WindowsPlatformToolset.v144] = toolset; + else + Log.Warning("Found Unsupported MSVC toolset version: " + version); } } } @@ -424,6 +433,7 @@ namespace Flax.Build.Platforms case WindowsPlatformToolset.v141: case WindowsPlatformToolset.v142: case WindowsPlatformToolset.v143: + case WindowsPlatformToolset.v144: { /* string crossCompilerPath = Path.Combine(vcToolChainDir, "bin", "HostX64", "x86", "cl.exe"); @@ -477,6 +487,7 @@ namespace Flax.Build.Platforms case WindowsPlatformToolset.v141: case WindowsPlatformToolset.v142: case WindowsPlatformToolset.v143: + case WindowsPlatformToolset.v144: { string nativeCompilerPath = Path.Combine(vcToolChainDir, "bin", "HostX64", "x64", "cl.exe"); if (File.Exists(nativeCompilerPath)) diff --git a/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchainBase.cs b/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchainBase.cs index 587467908..1c1f95afe 100644 --- a/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchainBase.cs +++ b/Source/Tools/Flax.Build/Platforms/Windows/WindowsToolchainBase.cs @@ -90,7 +90,14 @@ namespace Flax.Build.Platforms { if (VisualStudioInstance.HasIDE(VisualStudioVersion.VisualStudio2022)) { - toolsetVer = WindowsPlatformToolset.v143; + if (toolsets.Keys.Contains(WindowsPlatformToolset.v144)) + { + toolsetVer = WindowsPlatformToolset.v144; + } + else + { + toolsetVer = WindowsPlatformToolset.v143; + } } else if (VisualStudioInstance.HasIDE(VisualStudioVersion.VisualStudio2019)) { @@ -199,6 +206,7 @@ namespace Flax.Build.Platforms case WindowsPlatformToolset.v141: case WindowsPlatformToolset.v142: case WindowsPlatformToolset.v143: + case WindowsPlatformToolset.v144: { switch (Architecture) { @@ -378,6 +386,7 @@ namespace Flax.Build.Platforms var vcToolChainDir = toolsets[Toolset]; switch (Toolset) { + case WindowsPlatformToolset.v144: case WindowsPlatformToolset.v143: case WindowsPlatformToolset.v142: case WindowsPlatformToolset.v141: return Path.Combine(vcToolChainDir, "lib", "x86", "store", "references");