Merge remote-tracking branch 'origin/master' into sdl_platform

This commit is contained in:
2025-12-15 19:03:05 +02:00
60 changed files with 481 additions and 110 deletions

View File

@@ -217,7 +217,8 @@ namespace Flax.Build
var engineLibraryType = LinkerOutput.SharedLibrary;
if (buildOptions.Toolchain?.Compiler == TargetCompiler.MSVC)
engineLibraryType = LinkerOutput.ImportLibrary; // MSVC links DLL against import library
exeBuildOptions.LinkEnv.InputLibraries.Add(Path.Combine(buildOptions.OutputFolder, buildOptions.Platform.GetLinkOutputFileName(LibraryName, engineLibraryType)));
var engineLibraryPath = Utilities.NormalizePath(Path.Combine(buildOptions.OutputFolder, buildOptions.Platform.GetLinkOutputFileName(LibraryName, engineLibraryType)));
exeBuildOptions.LinkEnv.InputLibraries.Add(engineLibraryPath);
exeBuildOptions.LinkEnv.InputFiles.AddRange(mainModuleOptions.OutputFiles);
exeBuildOptions.DependencyFiles.AddRange(mainModuleOptions.DependencyFiles);
exeBuildOptions.NugetPackageReferences.AddRange(mainModuleOptions.NugetPackageReferences);

View File

@@ -134,7 +134,7 @@ namespace Flax.Build.Graph
}
/// <summary>
/// Performs tasks list sorting based on task dependencies and cost heuristics to to improve parallelism of the graph execution.
/// Performs tasks list sorting based on task dependencies and cost heuristics to improve parallelism of the graph execution.
/// </summary>
public void SortTasks()
{
@@ -149,12 +149,7 @@ namespace Flax.Build.Graph
{
if (FileToProducingTaskMap.TryGetValue(prerequisiteFile, out var prerequisiteTask))
{
HashSet<Task> dependentTasks;
if (taskToDependentActionsMap.ContainsKey(prerequisiteTask))
{
dependentTasks = taskToDependentActionsMap[prerequisiteTask];
}
else
if (!taskToDependentActionsMap.TryGetValue(prerequisiteTask, out var dependentTasks))
{
dependentTasks = new HashSet<Task>();
taskToDependentActionsMap[prerequisiteTask] = dependentTasks;

View File

@@ -94,6 +94,7 @@ namespace Flax.Deps.Dependencies
defines += "-DDISABLE_EXECUTABLES=1-DDISABLE_SHARED_LIBS=1";
buildArgs = $" -subset mono+libs -cmakeargs \"{defines}\" /p:FeaturePerfTracing=false /p:FeatureWin32Registry=false /p:FeatureCominteropApartmentSupport=false /p:FeatureManagedEtw=false /p:FeatureManagedEtwChannels=false /p:FeatureEtw=false /p:ApiCompatValidateAssemblies=false";
envVars.Add("_GAMING_XBOX", "1");
envVars.Add(targetPlatform == TargetPlatform.XboxScarlett ? "_GAMING_XBOX_SCARLETT" : "_GAMING_XBOX_XBOXONE", "1");
break;
case TargetPlatform.Linux:
os = "linux";

View File

@@ -525,7 +525,7 @@ namespace Flax.Build.Platforms
var args = new List<string>();
args.AddRange(options.LinkEnv.CustomArgs);
{
args.Add(string.Format("-o \"{0}\"", outputFilePath));
args.Add(string.Format("-o \"{0}\"", outputFilePath.Replace('\\', '/')));
if (!options.LinkEnv.DebugInformation)
{
@@ -612,7 +612,7 @@ namespace Flax.Build.Platforms
/// <inheritdoc />
public override void LinkFiles(TaskGraph graph, BuildOptions options, string outputFilePath)
{
outputFilePath = outputFilePath.Replace('\\', '/');
outputFilePath = Utilities.NormalizePath(outputFilePath);
Task linkTask;
switch (options.LinkEnv.Output)

View File

@@ -788,6 +788,7 @@ namespace Flax.Build.Platforms
/// <inheritdoc />
public override void LinkFiles(TaskGraph graph, BuildOptions options, string outputFilePath)
{
outputFilePath = Utilities.NormalizePath(outputFilePath);
var linkEnvironment = options.LinkEnv;
var task = graph.Add<LinkTask>();