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));
            }
        }
Beispiel #2
0
        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;
 }
Beispiel #4
0
 OptimizerContext(LinkContext context, OptimizerOptions options, string mainModule)
 {
     Context    = context;
     Options    = options;
     MainModule = mainModule;
 }