Crossgen2RootCommand.cs (88)
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("--generate-unboxing-stubs") { Description = SR.GenerateUnboxingStubsOption };
50new("--type-validation") { DefaultValueFactory = _ => TypeValidationRule.Automatic, Description = SR.TypeValidation, HelpName = "arg" };
52new("--inputbubble") { Description = SR.InputBubbleOption };
54new("--inputbubbleref") { CustomParser = result => Helpers.BuildPathDictionary(result.Tokens, false), DefaultValueFactory = result => Helpers.BuildPathDictionary(result.Tokens, false), Description = SR.InputBubbleReferenceFiles };
56new("--composite") { Description = SR.CompositeBuildMode };
58new("--compositekeyfile") { Description = SR.CompositeKeyFile };
60new("--rtr-header-symbol-name") { Description = SR.ReadyToRunHeaderSymbolName };
62new("--compile-no-methods") { Description = SR.CompileNoMethodsOption };
64new("--out-near-input") { Description = SR.OutNearInputOption };
66new("--single-file-compilation") { Description = SR.SingleFileCompilationOption };
68new("--partial") { Description = SR.PartialImageOption };
70new("--compilebubblegenerics") { Description = SR.BubbleGenericsOption };
72new("--embed-pgo-data") { Description = SR.EmbedPgoDataOption };
74new("--dgmllog") { Description = SR.SaveDependencyLogOption };
76new("--fulllog") { Description = SR.SaveDetailedLogOption };
78new("--verbose") { Description = SR.VerboseLoggingOption };
80new("--systemmodule") { DefaultValueFactory = _ => Helpers.DefaultSystemModule, Description = SR.SystemModuleOverrideOption };
82new("--waitfordebugger") { Description = SR.WaitForDebuggerOption };
84new("--codegenopt") { DefaultValueFactory = _ => Array.Empty<string>(), Description = SR.CodeGenOptions };
86new("--support-ibc") { Description = SR.SupportIbc };
88new("--resilient") { Description = SR.ResilientOption };
90new("--imagebase") { Description = SR.ImageBase };
92new("--targetarch") { Description = SR.TargetArchOption };
94new("--maxgenericcycle") { DefaultValueFactory = _ => ReadyToRunCompilerContext.DefaultGenericCycleDepthCutoff, Description = SR.GenericCycleDepthCutoff };
96new("--maxgenericcyclebreadth") { DefaultValueFactory = _ => ReadyToRunCompilerContext.DefaultGenericCycleBreadthCutoff, Description = SR.GenericCycleBreadthCutoff };
98new("--targetos") { Description = SR.TargetOSOption };
100new("--target-allows-runtime-code-generation") { Description = SR.TargetAllowsRuntimeCodeGenerationOption };
102new("--jitpath") { Description = SR.JitPathOption };
104new("--print-repro-instructions") { Description = SR.PrintReproInstructionsOption };
106new("--generate-portable-callhelpers") { Description = SR.GeneratePortableCallHelpersOption };
108new("--directpinvoke") { DefaultValueFactory = _ => Array.Empty<string>(), Description = SR.DirectPInvokeOption };
110new("--singlemethodtypename") { Description = SR.SingleMethodTypeName };
112new("--singlemethodname") { Description = SR.SingleMethodMethodName };
114new("--singlemethodindex") { Description = SR.SingleMethodIndex };
116new("--singlemethodgenericarg") { Description = SR.SingleMethodGenericArgs };
118new("--parallelism") { CustomParser = MakeParallelism, DefaultValueFactory = MakeParallelism, Description = SR.ParalellismOption };
120new("--custom-pe-section-alignment") { Description = SR.CustomPESectionAlignmentOption };
122new("--map") { Description = SR.MapFileOption };
124new("--mapcsv") { Description = SR.MapCsvFileOption };
126new("--pdb") { Description = SR.PdbFileOption };
128new("--pdb-path") { Description = SR.PdbFilePathOption };
130new("--perfmap") { Description = SR.PerfMapFileOption };
132new("--perfmap-path") { Description = SR.PerfMapFilePathOption };
134new("--perfmap-format-version") { DefaultValueFactory = _ => 0, Description = SR.PerfMapFormatVersionOption };
136new("--wasm-debug-info") { CustomParser = MakeWasmDebugInfo, DefaultValueFactory = MakeWasmDebugInfo, Description = SR.WasmDebugInfoOption, HelpName = "formats" };
138new("--opt-cross-module") { Description = SR.CrossModuleInlining };
140new("--opt-async-methods") { Description = SR.AsyncModuleOptimization };
142new("--non-local-generics-module") { DefaultValueFactory = _ => string.Empty, Description = SR.NonLocalGenericsModule };
144new("--method-layout") { CustomParser = MakeMethodLayoutAlgorithm, DefaultValueFactory = MakeMethodLayoutAlgorithm, Description = SR.MethodLayoutOption, HelpName = "arg" };
146new("--file-layout") { CustomParser = MakeFileLayoutAlgorithm, DefaultValueFactory = MakeFileLayoutAlgorithm, Description = SR.FileLayoutOption, HelpName = "arg" };
148new("--verify-type-and-field-layout") { Description = SR.VerifyTypeAndFieldLayoutOption };
150new("--callchain-profile") { Description = SR.CallChainProfileFile };
154new("--hot-cold-splitting") { Description = SR.HotColdSplittingOption };
156new("--verify-gc-mode-transitions") { Description = SR.VerifyGCModeTransitionsOption };
158new("--strip-inlining-info") { Description = SR.StripInliningInfoOption };
160new("--strip-debug-info") { Description = SR.StripDebugInfoOption };
162new("--strip-il-bodies") { Description = SR.StripILBodiesOption };
173public Crossgen2RootCommand(string[] args) : base(SR.Crossgen2BannerText)
278throw new CommandLineException(SR.InvalidCustomPESectionAlignment);
319Console.WriteLine(SR.OptionPassingHelp);
321Console.WriteLine(SR.DashDashHelp);
324Console.WriteLine(String.Format(SR.SwitchWithDefaultHelp, "--targetos", String.Join("', '", Helpers.ValidOS), Helpers.GetTargetOS(null).ToString().ToLowerInvariant()));
326Console.WriteLine(String.Format(SR.SwitchWithDefaultHelp, "--targetarch", String.Join("', '", Helpers.ValidArchitectures), Helpers.GetTargetArchitecture(null).ToString().ToLowerInvariant()));
330Console.WriteLine(String.Format(SR.SwitchWithDefaultHelp, "--obj-format", String.Join("', '", ValidObjFormats), "pe"));
333Console.WriteLine(String.Format(SR.SwitchWithDefaultHelp, "--type-validation", String.Join("', '", Enum.GetNames<TypeValidationRule>()), nameof(TypeValidationRule.Automatic)));
336Console.WriteLine(SR.CrossModuleInliningExtraHelp);
338Console.WriteLine(String.Format(SR.LayoutOptionExtraHelp, "--method-layout", String.Join("', '", Enum.GetNames<MethodLayoutAlgorithm>())));
340Console.WriteLine(String.Format(SR.LayoutOptionExtraHelp, "--file-layout", String.Join("', '", Enum.GetNames<FileLayoutAlgorithm>())));
343Console.WriteLine(SR.InstructionSetHelp);
373Console.WriteLine(SR.CpuFamilies);
408_ => throw new CommandLineException(SR.InvalidMethodLayout)
421_ => throw new CommandLineException(SR.InvalidFileLayout)
435_ => throw new CommandLineException(SR.InvalidOutputFormat)
457_ => throw new CommandLineException(SR.InvalidWasmDebugInfo)
462throw new CommandLineException(SR.InvalidWasmDebugInfo);