Crossgen2RootCommand.cs (82)
22new("--unrooted-input-file-paths", "-u") { CustomParser = result => Helpers.BuildPathDictionary(result.Tokens, true), DefaultValueFactory = result => Helpers.BuildPathDictionary(result.Tokens, true), Description = SR.UnrootedInputFilesToCompile };
24new("--reference", "-r") { CustomParser = result => Helpers.BuildPathDictionary(result.Tokens, false), DefaultValueFactory = result => Helpers.BuildPathDictionary(result.Tokens, false), Description = SR.ReferenceFiles };
26new("--instruction-set") { Description = SR.InstructionSets };
28new("--max-vectort-bitwidth") { Description = SR.MaxVectorTBitWidths };
30new("--mibc", "-m") { DefaultValueFactory = _ => Array.Empty<string>(), Description = SR.MibcFiles };
32new("--out", "-o") { Description = SR.OutputFilePath };
34new("--obj-format", "-f") { CustomParser = MakeOutputFormat, DefaultValueFactory = MakeOutputFormat, Description = SR.OutputFormat, HelpName = "arg" };
36new("--compositerootpath", "--crp") { Description = SR.CompositeRootPath };
38new("--optimize", "-O") { Description = SR.EnableOptimizationsOption };
40new("--optimize-disabled", "--Od") { Description = SR.DisableOptimizationsOption };
42new("--optimize-space", "--Os") { Description = SR.OptimizeSpaceOption };
44new("--optimize-time", "--Ot") { Description = SR.OptimizeSpeedOption };
46new("--enable-cached-interface-dispatch-support", "--CID") { Description = SR.EnableCachedInterfaceDispatchSupport };
48new("--type-validation") { DefaultValueFactory = _ => TypeValidationRule.Automatic, Description = SR.TypeValidation, HelpName = "arg" };
50new("--inputbubble") { Description = SR.InputBubbleOption };
52new("--inputbubbleref") { CustomParser = result => Helpers.BuildPathDictionary(result.Tokens, false), DefaultValueFactory = result => Helpers.BuildPathDictionary(result.Tokens, false), Description = SR.InputBubbleReferenceFiles };
54new("--composite") { Description = SR.CompositeBuildMode };
56new("--compositekeyfile") { Description = SR.CompositeKeyFile };
58new("--rtr-header-symbol-name") { Description = SR.ReadyToRunHeaderSymbolName };
60new("--compile-no-methods") { Description = SR.CompileNoMethodsOption };
62new("--out-near-input") { Description = SR.OutNearInputOption };
64new("--single-file-compilation") { Description = SR.SingleFileCompilationOption };
66new("--partial") { Description = SR.PartialImageOption };
68new("--compilebubblegenerics") { Description = SR.BubbleGenericsOption };
70new("--embed-pgo-data") { Description = SR.EmbedPgoDataOption };
72new("--dgmllog") { Description = SR.SaveDependencyLogOption };
74new("--fulllog") { Description = SR.SaveDetailedLogOption };
76new("--verbose") { Description = SR.VerboseLoggingOption };
78new("--systemmodule") { DefaultValueFactory = _ => Helpers.DefaultSystemModule, Description = SR.SystemModuleOverrideOption };
80new("--waitfordebugger") { Description = SR.WaitForDebuggerOption };
82new("--codegenopt") { DefaultValueFactory = _ => Array.Empty<string>(), Description = SR.CodeGenOptions };
84new("--support-ibc") { Description = SR.SupportIbc };
86new("--resilient") { Description = SR.ResilientOption };
88new("--imagebase") { Description = SR.ImageBase };
90new("--targetarch") { CustomParser = MakeTargetArchitecture, DefaultValueFactory = MakeTargetArchitecture, Description = SR.TargetArchOption, Arity = ArgumentArity.OneOrMore, HelpName = "arg" };
92new("--enable-generic-cycle-detection") { Description = SR.EnableGenericCycleDetection };
94new("--maxgenericcycle") { DefaultValueFactory = _ => ReadyToRunCompilerContext.DefaultGenericCycleDepthCutoff, Description = SR.GenericCycleDepthCutoff };
96new("--maxgenericcyclebreadth") { DefaultValueFactory = _ => ReadyToRunCompilerContext.DefaultGenericCycleBreadthCutoff, Description = SR.GenericCycleBreadthCutoff };
98new("--targetos") { CustomParser = result => Helpers.GetTargetOS(result.Tokens.Count > 0 ? result.Tokens[0].Value : null), DefaultValueFactory = result => Helpers.GetTargetOS(result.Tokens.Count > 0 ? result.Tokens[0].Value : null), Description = SR.TargetOSOption, HelpName = "arg" };
100new("--jitpath") { Description = SR.JitPathOption };
102new("--print-repro-instructions") { Description = SR.PrintReproInstructionsOption };
104new("--singlemethodtypename") { Description = SR.SingleMethodTypeName };
106new("--singlemethodname") { Description = SR.SingleMethodMethodName };
108new("--singlemethodindex") { Description = SR.SingleMethodIndex };
110new("--singlemethodgenericarg") { Description = SR.SingleMethodGenericArgs };
112new("--parallelism") { CustomParser = MakeParallelism, DefaultValueFactory = MakeParallelism, Description = SR.ParalellismOption };
114new("--custom-pe-section-alignment") { Description = SR.CustomPESectionAlignmentOption };
116new("--map") { Description = SR.MapFileOption };
118new("--mapcsv") { Description = SR.MapCsvFileOption };
120new("--pdb") { Description = SR.PdbFileOption };
122new("--pdb-path") { Description = SR.PdbFilePathOption };
124new("--perfmap") { Description = SR.PerfMapFileOption };
126new("--perfmap-path") { Description = SR.PerfMapFilePathOption };
128new("--perfmap-format-version") { DefaultValueFactory = _ => 0, Description = SR.PerfMapFormatVersionOption };
130new("--opt-cross-module") { Description = SR.CrossModuleInlining };
132new("--opt-async-methods") { Description = SR.AsyncModuleOptimization };
134new("--non-local-generics-module") { DefaultValueFactory = _ => string.Empty, Description = SR.NonLocalGenericsModule };
136new("--method-layout") { CustomParser = MakeMethodLayoutAlgorithm, DefaultValueFactory = MakeMethodLayoutAlgorithm, Description = SR.MethodLayoutOption, HelpName = "arg" };
138new("--file-layout") { CustomParser = MakeFileLayoutAlgorithm, DefaultValueFactory = MakeFileLayoutAlgorithm, Description = SR.FileLayoutOption, HelpName = "arg" };
140new("--verify-type-and-field-layout") { Description = SR.VerifyTypeAndFieldLayoutOption };
142new("--callchain-profile") { Description = SR.CallChainProfileFile };
146new("--hot-cold-splitting") { Description = SR.HotColdSplittingOption };
148new("--strip-inlining-info") { Description = SR.StripInliningInfoOption };
150new("--strip-debug-info") { Description = SR.StripDebugInfoOption };
152new("--strip-il-bodies") { Description = SR.StripILBodiesOption };
165public Crossgen2RootCommand(string[] args) : base(SR.Crossgen2BannerText)
265throw new CommandLineException(SR.InvalidCustomPESectionAlignment);
306Console.WriteLine(SR.OptionPassingHelp);
308Console.WriteLine(SR.DashDashHelp);
314Console.WriteLine(String.Format(SR.SwitchWithDefaultHelp, "--targetos", String.Join("', '", ValidOS), Helpers.GetTargetOS(null).ToString().ToLowerInvariant()));
316Console.WriteLine(String.Format(SR.SwitchWithDefaultHelp, "--targetarch", String.Join("', '", ValidArchitectures), Helpers.GetTargetArchitecture(null).ToString().ToLowerInvariant()));
320Console.WriteLine(String.Format(SR.SwitchWithDefaultHelp, "--obj-format", String.Join("', '", ValidObjFormats), "pe"));
323Console.WriteLine(String.Format(SR.SwitchWithDefaultHelp, "--type-validation", String.Join("', '", Enum.GetNames<TypeValidationRule>()), nameof(TypeValidationRule.Automatic)));
326Console.WriteLine(SR.CrossModuleInliningExtraHelp);
328Console.WriteLine(String.Format(SR.LayoutOptionExtraHelp, "--method-layout", String.Join("', '", Enum.GetNames<MethodLayoutAlgorithm>())));
330Console.WriteLine(String.Format(SR.LayoutOptionExtraHelp, "--file-layout", String.Join("', '", Enum.GetNames<FileLayoutAlgorithm>())));
333Console.WriteLine(SR.InstructionSetHelp);
363Console.WriteLine(SR.CpuFamilies);
410_ => throw new CommandLineException(SR.InvalidMethodLayout)
423_ => throw new CommandLineException(SR.InvalidFileLayout)
437_ => throw new CommandLineException(SR.InvalidOutputFormat)
444Console.WriteLine(SR.DumpReproInstructions);