Add C# class library optimization for normal game builds (without AOT)

This commit is contained in:
Wojtek Figat
2023-04-03 23:41:18 +02:00
parent be7da82cfc
commit 820c18968a
3 changed files with 121 additions and 16 deletions

View File

@@ -225,6 +225,26 @@ bool DeployDataStep::Perform(CookingData& data)
}
}
}
// Optimize deployed C# class library (remove DLLs unused by scripts)
if (aotMode == DotNetAOTModes::None && buildSettings.SkipUnusedDotnetLibsPackaging)
{
LOG(Info, "Optimizing .NET class library size to include only used assemblies");
const String logFile = data.CacheDirectory / TEXT("StripDotnetLibs.txt");
String args = String::Format(
TEXT("-log -logfile=\"{}\" -runDotNetClassLibStripping -mutex -binaries=\"{}\""),
logFile, data.DataOutputPath);
for (const String& define : data.CustomDefines)
{
args += TEXT(" -D");
args += define;
}
if (ScriptsBuilder::RunBuildTool(args))
{
data.Error(TEXT("Failed to optimize .Net class library."));
return true;
}
}
}
#else
if (!FileSystem::DirectoryExists(dstMono))