Fix dependencies building to check for target platform build support, not the host platform

This commit is contained in:
Wojtek Figat
2026-03-06 11:10:40 +01:00
parent f0873411df
commit 341dc08f7c
2 changed files with 3 additions and 3 deletions

View File

@@ -196,7 +196,7 @@ namespace Flax.Build
/// <returns><c>true</c> if this platform can build the specified architecture; otherwise, <c>false</c>.</returns>
public virtual bool CanBuildArchitecture(TargetArchitecture targetArchitecture)
{
return IsPlatformSupported(Target, targetArchitecture);
return IsPlatformSupported(Target, targetArchitecture) && HasRequiredSDKsInstalled;
}
/// <summary>
@@ -332,7 +332,7 @@ namespace Flax.Build
switch (targetPlatform)
{
case TargetPlatform.Windows: return targetArchitecture == TargetArchitecture.x64 || targetArchitecture == TargetArchitecture.x86 || targetArchitecture == TargetArchitecture.ARM64;
case TargetPlatform.Windows: return targetArchitecture == TargetArchitecture.x64 || targetArchitecture == TargetArchitecture.ARM64;
case TargetPlatform.XboxScarlett: return targetArchitecture == TargetArchitecture.x64;
case TargetPlatform.XboxOne: return targetArchitecture == TargetArchitecture.x64;
case TargetPlatform.UWP: return targetArchitecture == TargetArchitecture.x64;

View File

@@ -42,7 +42,7 @@ namespace Flax.Deps
var architectures = Globals.AllArchitectures;
if (Configuration.BuildArchitectures != null && Configuration.BuildArchitectures.Length != 0)
architectures = Configuration.BuildArchitectures;
architectures = architectures.Where(buildPlatform.CanBuildArchitecture).ToArray();
architectures = architectures.Where(x => platforms.Any(y => Platform.GetPlatform(y, true)?.CanBuildArchitecture(x) ?? false)).ToArray();
Log.Verbose($"Building deps for platforms {string.Join(',', platforms)}, {string.Join(',', architectures)}:");
foreach (var platform in platforms)
{