Fix missing dotnet hosting components for not yet supported platforms during projects generation stage
This commit is contained in:
4
Source/ThirdParty/nethost/nethost.Build.cs
vendored
4
Source/ThirdParty/nethost/nethost.Build.cs
vendored
@@ -34,7 +34,11 @@ public class nethost : ThirdPartyModule
|
||||
if (!dotnetSdk.IsValid)
|
||||
throw new Exception($"Missing NET SDK {DotNetSdk.MinimumVersion}.");
|
||||
if (!dotnetSdk.GetHostRuntime(options.Platform.Target, options.Architecture, out var hostRuntimePath))
|
||||
{
|
||||
if (options.Flags.HasFlag(BuildFlags.GenerateProject))
|
||||
return; // Ignore missing Host Runtime at projects evaluation stage (not important)
|
||||
throw new Exception($"Missing NET SDK runtime for {options.Platform.Target} {options.Architecture}.");
|
||||
}
|
||||
|
||||
// Setup build configuration
|
||||
switch (options.Platform.Target)
|
||||
|
||||
@@ -40,6 +40,7 @@ namespace Flax.Build
|
||||
var configurationName = "Debug";
|
||||
var configurationText = configurationName;
|
||||
var targetBuildOptions = GetBuildOptions(target, platform, toolchain, architecture, configuration, project.WorkspaceRootPath);
|
||||
targetBuildOptions.Flags |= BuildFlags.GenerateProject;
|
||||
var modules = CollectModules(rules, platform, target, targetBuildOptions, toolchain, architecture, configuration);
|
||||
foreach (var module in modules)
|
||||
{
|
||||
@@ -65,6 +66,7 @@ namespace Flax.Build
|
||||
configurationName = "Release";
|
||||
configurationText = configurationName;
|
||||
targetBuildOptions = GetBuildOptions(target, platform, toolchain, architecture, configuration, project.WorkspaceRootPath);
|
||||
targetBuildOptions.Flags |= BuildFlags.GenerateProject;
|
||||
modules = CollectModules(rules, platform, target, targetBuildOptions, toolchain, architecture, configuration);
|
||||
foreach (var module in modules)
|
||||
{
|
||||
@@ -115,6 +117,7 @@ namespace Flax.Build
|
||||
|
||||
var toolchain = platform.TryGetToolchain(architecture);
|
||||
var targetBuildOptions = GetBuildOptions(target, platform, toolchain, architecture, configuration, project.WorkspaceRootPath);
|
||||
targetBuildOptions.Flags |= BuildFlags.GenerateProject;
|
||||
var modules = CollectModules(rules, platform, target, targetBuildOptions, toolchain, architecture, configuration);
|
||||
foreach (var module in modules)
|
||||
{
|
||||
@@ -275,6 +278,7 @@ namespace Flax.Build
|
||||
try
|
||||
{
|
||||
var referenceBuildOptions = GetBuildOptions(referenceTarget, configurationData.TargetBuildOptions.Platform, configurationData.TargetBuildOptions.Toolchain, configurationData.Architecture, configurationData.Configuration, reference.Project.ProjectFolderPath);
|
||||
referenceBuildOptions.Flags |= BuildFlags.GenerateProject;
|
||||
var referenceModules = CollectModules(rules, referenceBuildOptions.Platform, referenceTarget, referenceBuildOptions, referenceBuildOptions.Toolchain, referenceBuildOptions.Architecture, referenceBuildOptions.Configuration);
|
||||
var referenceBinaryModules = GetBinaryModules(projectInfo, referenceTarget, referenceModules);
|
||||
foreach (var binaryModule in referenceBinaryModules)
|
||||
@@ -504,6 +508,8 @@ namespace Flax.Build
|
||||
var platform = Platform.BuildPlatform;
|
||||
var architecture = TargetArchitecture.x64;
|
||||
var configuration = TargetConfiguration.Debug;
|
||||
var buildOptions = GetBuildOptions(target, platform, null, architecture, configuration, project.WorkspaceRootPath);
|
||||
buildOptions.Flags |= BuildFlags.GenerateProject;
|
||||
project.Configurations.Add(new Project.ConfigurationData
|
||||
{
|
||||
Platform = platform.Target,
|
||||
@@ -513,7 +519,7 @@ namespace Flax.Build
|
||||
Configuration = configuration,
|
||||
ConfigurationName = configuration.ToString(),
|
||||
Target = target,
|
||||
TargetBuildOptions = GetBuildOptions(target, platform, null, architecture, configuration, project.WorkspaceRootPath),
|
||||
TargetBuildOptions = buildOptions,
|
||||
Modules = new Dictionary<Module, BuildOptions>(),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -171,6 +171,7 @@ namespace Flax.Build
|
||||
OutputFolder = mainModuleOutputPath,
|
||||
WorkingDirectory = exeBuildOptions.WorkingDirectory,
|
||||
HotReloadPostfix = exeBuildOptions.HotReloadPostfix,
|
||||
Flags = exeBuildOptions.Flags,
|
||||
};
|
||||
mainModuleOptions.SourcePaths.Add(mainModule.FolderPath);
|
||||
mainModule.Setup(mainModuleOptions);
|
||||
|
||||
@@ -6,6 +6,23 @@ using System.IO;
|
||||
|
||||
namespace Flax.Build.NativeCpp
|
||||
{
|
||||
/// <summary>
|
||||
/// The native C++ module build flag types.
|
||||
/// </summary>
|
||||
[Flags]
|
||||
public enum BuildFlags
|
||||
{
|
||||
/// <summary>
|
||||
/// Nothing.
|
||||
/// </summary>
|
||||
None = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Projects generation (not actual build, just build setup evaluation).
|
||||
/// </summary>
|
||||
GenerateProject = 1,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The native C++ module build settings container.
|
||||
/// </summary>
|
||||
@@ -131,6 +148,11 @@ namespace Flax.Build.NativeCpp
|
||||
/// </summary>
|
||||
public string HotReloadPostfix;
|
||||
|
||||
/// <summary>
|
||||
/// The build flags.
|
||||
/// </summary>
|
||||
public BuildFlags Flags;
|
||||
|
||||
/// <summary>
|
||||
/// The full path to the dependencies folder for the current build platform, configuration, and architecture.
|
||||
/// </summary>
|
||||
@@ -213,7 +235,7 @@ namespace Flax.Build.NativeCpp
|
||||
"System.Private.CoreLib",
|
||||
"System.Private.Uri",
|
||||
"System.Private.Xml",
|
||||
|
||||
|
||||
"System.Reflection",
|
||||
"System.Runtime",
|
||||
"System.Runtime.CompilerServices.Unsafe",
|
||||
|
||||
@@ -177,6 +177,7 @@ namespace Flax.Build
|
||||
OutputFolder = outputPath,
|
||||
WorkingDirectory = buildData.TargetOptions.WorkingDirectory,
|
||||
HotReloadPostfix = buildData.TargetOptions.HotReloadPostfix,
|
||||
Flags = buildData.TargetOptions.Flags,
|
||||
};
|
||||
moduleOptions.SourcePaths.Add(module.FolderPath);
|
||||
module.Setup(moduleOptions);
|
||||
|
||||
Reference in New Issue
Block a user