Add TryGetToolchain to build platform

#631
This commit is contained in:
Wojtek Figat
2021-09-28 20:06:26 +02:00
parent 6d3170c665
commit e6ba2402b7
3 changed files with 14 additions and 4 deletions

View File

@@ -34,7 +34,7 @@ namespace Flax.Build
var platform = Platform.BuildPlatform;
var architecture = TargetArchitecture.AnyCPU;
var architectureName = "AnyCPU";
var toolchain = platform.HasRequiredSDKsInstalled ? platform.GetToolchain(architecture) : null;
var toolchain = platform.TryGetToolchain(architecture);
var configuration = TargetConfiguration.Debug;
var configurationName = "Debug";
@@ -113,7 +113,7 @@ namespace Flax.Build
if (platform is IProjectCustomizer customizer)
customizer.GetProjectArchitectureName(project, platform, architecture, ref architectureName);
var toolchain = platform.HasRequiredSDKsInstalled ? platform.GetToolchain(architecture) : null;
var toolchain = platform.TryGetToolchain(architecture);
var targetBuildOptions = GetBuildOptions(target, platform, toolchain, architecture, configuration, project.WorkspaceRootPath);
var modules = CollectModules(rules, platform, target, targetBuildOptions, toolchain, architecture, configuration);
foreach (var module in modules)

View File

@@ -954,7 +954,7 @@ namespace Flax.Build
throw new Exception($"Cannot build target {target.Name}. The project file is missing (.flaxproj located in the folder above).");
// Setup build environment for the target
var targetBuildOptions = GetBuildOptions(target, platform, null, architecture, configuration, project.ProjectFolderPath, skipBuild ? string.Empty : Configuration.HotReloadPostfix);
var targetBuildOptions = GetBuildOptions(target, platform, platform.TryGetToolchain(architecture), architecture, configuration, project.ProjectFolderPath, skipBuild ? string.Empty : Configuration.HotReloadPostfix);
using (new ProfileEventScope("PreBuild"))
{
@@ -977,7 +977,7 @@ namespace Flax.Build
Target = target,
TargetOptions = targetBuildOptions,
Platform = platform,
Toolchain = null,
Toolchain = targetBuildOptions.Toolchain,
Architecture = architecture,
Configuration = configuration,
};

View File

@@ -183,6 +183,16 @@ namespace Flax.Build
throw new Exception(string.Format("Platform {0} is not supported.", targetPlatform));
}
/// <summary>
/// Tries to create the build toolchain for a given architecture. Returns null if platform is not supported.
/// </summary>
/// <param name="targetArchitecture">The target architecture.</param>
/// <returns>The toolchain.</returns>
public Toolchain TryGetToolchain(TargetArchitecture targetArchitecture)
{
return HasRequiredSDKsInstalled ? GetToolchain(targetArchitecture) : null;
}
/// <summary>
/// Creates the build toolchain for a given architecture.
/// </summary>