Change nethost native libs to be shared on Xbox

This commit is contained in:
2026-07-15 14:11:21 +02:00
parent 6272de184c
commit d76f3795ea
4 changed files with 23 additions and 5 deletions
@@ -337,6 +337,11 @@ bool DeployDataStep::Perform(CookingData& data)
DEPLOY_NATIVE_FILE("libSystem.Net.Security.Native.dylib");
DEPLOY_NATIVE_FILE("libSystem.Security.Cryptography.Native.Apple.dylib");
break;
case BuildPlatform::XboxOne:
case BuildPlatform::XboxScarlett:
DEPLOY_NATIVE_FILE("System.IO.Compression.Native.dll");
DEPLOY_NATIVE_FILE("System.Globalization.Native.dll");
break;
#undef DEPLOY_NATIVE_FILE
default: ;
}
-1
View File
@@ -79,7 +79,6 @@ public class nethost : ThirdPartyModule
case TargetPlatform.XboxScarlett:
options.OutputFiles.Add(Path.Combine(hostRuntime.Path, "monosgen-2.0.lib"));
options.OutputFiles.Add(Path.Combine(hostRuntime.Path, "mono-profiler-aot.lib"));
options.OutputFiles.Add(Path.Combine(hostRuntime.Path, "System.Globalization.Native-Static.lib"));
break;
case TargetPlatform.Linux:
options.OutputFiles.Add(Path.Combine(hostRuntime.Path, "libnethost.a"));
@@ -94,7 +94,7 @@ namespace Flax.Deps.Dependencies
buildMonoAotCross = true;
var defines = "-D_GAMING_XBOX=1-DDISABLE_JIT=1-DENABLE_PERFTRACING=0-DDISABLE_REFLECTION_EMIT=1-DDISABLE_EVENTPIPE=1-DDISABLE_COM=1-DDISABLE_PROFILER=1-DDISABLE_COMPONENTS=1-DDISABLE_EMBEDDED_PDB=1";
defines += targetPlatform == TargetPlatform.XboxScarlett ? "-D_GAMING_XBOX_SCARLETT=1" : "-D_GAMING_XBOX_XBOXONE=1";
defines += "-DDISABLE_EXECUTABLES=1-DDISABLE_SHARED_LIBS=1";
defines += "-DDISABLE_EXECUTABLES=1-DDISABLE_SHARED_LIBS=0";
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");
@@ -273,8 +273,8 @@ namespace Flax.Deps.Dependencies
};
libs2 = new[]
{
"lib/System.Globalization.Native-Static.lib",
"lib/System.IO.Compression.Native-Static.lib",
"System.Globalization.Native.dll",
"System.IO.Compression.Native.dll",
};
break;
case TargetPlatform.PS5:
@@ -347,6 +347,18 @@ namespace Flax.Deps.Dependencies
SetupDirectory(dstDotnetLib, true);
Utilities.FileCopy(Path.Combine(artifacts, "bin", "mono", $"{os}.{arch}.{configuration}", privateCoreLib), Path.Combine(dstDotnetLib, privateCoreLib));
Utilities.DirectoryCopy(Path.Combine(artifacts, "bin", "runtime", $"{framework}-{os}-{configuration}-{arch}"), dstDotnetLib, false, true, "*.dll");
switch (targetPlatform)
{
case TargetPlatform.XboxOne:
case TargetPlatform.XboxScarlett:
// Native shared libs are deployed to ThirdParty binaries folder
Utilities.FileDelete(Path.Combine(dstDotnetLib, "System.Globalization.Native.dll"));
Utilities.FileDelete(Path.Combine(dstDotnetLib, "System.IO.Compression.Native.dll"));
break;
default:
break;
}
}
}
@@ -446,8 +446,10 @@ namespace Flax.Build.Platforms
{
string binRootDir = Directory.GetParent(_resourceCompilerPath).FullName;
var path = Environment.GetEnvironmentVariable("PATH");
if (!string.IsNullOrEmpty(_resourceCompilerPath) && !path.Contains(binRootDir))
if (path != null && !path.Contains(binRootDir))
Environment.SetEnvironmentVariable("PATH", path + ";" + binRootDir);
else if (path == null)
Environment.SetEnvironmentVariable("PATH", binRootDir);
}
}