public static void Read(OptimizerOptions options, string filename) { var settings = new XmlReaderSettings(); var reader = new OptionsReader(options, filename); using (var xml = XmlReader.Create(filename, settings)) { Console.WriteLine($"Reading XML description from {filename}."); reader.Read(new XPathDocument(xml)); } }
public static void Initialize(LinkContext linkContext, string mainModule, OptimizerOptions options) { if (initialized) { return; } initialized = true; var context = new OptimizerContext(linkContext, options, mainModule); if (options.CheckSize) { options.ReportMode |= ReportMode.Size; } if (options.OptimizerReport.IsEnabled(ReportMode.Detailed) || options.OptimizerReport.IsEnabled(ReportMode.Size)) { options.AnalyzeAll = options.ScanAllModules = true; if (options.Preprocessor == OptimizerOptions.PreprocessorMode.None) { options.Preprocessor = OptimizerOptions.PreprocessorMode.Automatic; } } linkContext.Pipeline.AddStepAfter(typeof(TypeMapStep), new InitializeOptimizerStep(context)); if (options.EnableBlazor) { linkContext.Pipeline.AddStepBefore(typeof(MarkStep), new BlazorPreserveStep(context)); } linkContext.Pipeline.AddStepBefore(typeof(MarkStep), new PreprocessStep(context)); linkContext.Pipeline.ReplaceStep(typeof(MarkStep), new ConditionalMarkStep(context)); linkContext.Pipeline.AppendStep(new SizeReportStep(context)); if (options.CompareWith != null) { linkContext.Pipeline.AppendStep(new CompareWithReportStep(context)); } linkContext.Pipeline.AppendStep(new GenerateReportStep(context)); linkContext.Pipeline.AppendStep(new FinalCheckStep(context)); context.ResolveAssemblies(); }
OptionsReader(OptimizerOptions options, string filename) { Options = options; FileName = filename; }
OptimizerContext(LinkContext context, OptimizerOptions options, string mainModule) { Context = context; Options = options; MainModule = mainModule; }