Nuke.Unreal
Build Unreal apps in Style.
Loading...
Searching...
No Matches
UbtConfigGenerated.cs
1
2// This file is generated via `nuke generate-tools` target.
3#nullable disable
4
5using System;
6using System.Collections.Generic;
7using System.Linq;
8using System.Threading.Tasks;
9namespace Nuke.Unreal.Tools;
10/// <summary>
11/// The current hot reload mode
12/// </summary>
13public enum HotReloadMode
14{
15
16 Default,
17
18 Disabled,
19
20 FromIDE,
21
22 FromEditor,
23
24 LiveCoding,
25}
26
27/// <summary>
28/// Controls how a particular warning is treated
29/// </summary>
30public enum WarningLevel
31{
32 /// <summary>
33 /// Do not display diagnostics
34 /// </summary>
35 Off,
36 /// <summary>
37 /// Output warnings normally
38 /// </summary>
39 Warning,
40 /// <summary>
41 /// Output warnings as errors
42 /// </summary>
43 Error,
44}
45
46/// <summary>
47/// Specifies which language standard to use. This enum should be kept in order, so that toolchains can check whether the requested setting is >= values that they support.
48/// </summary>
50{
51 /// <summary>
52 /// Use the default standard version
53 /// </summary>
54 Default,
55 /// <summary>
56 /// Supports C++14
57 /// </summary>
58 Cpp14,
59 /// <summary>
60 /// Supports C++17
61 /// </summary>
62 Cpp17,
63 /// <summary>
64 /// Latest standard supported by the compiler
65 /// </summary>
66 Latest,
67}
68
69/// <summary>
70/// Available compiler toolchains on Windows platform
71/// </summary>
72public enum WindowsCompiler
73{
74 /// <summary>
75 /// Use the default compiler. A specific value will always be used outside of configuration classes.
76 /// </summary>
77 Default,
78 /// <summary>
79 /// Use Clang for Windows, using the clang-cl driver.
80 /// </summary>
81 Clang,
82 /// <summary>
83 /// Use the Intel C++ compiler
84 /// </summary>
85 Intel,
86 /// <summary>
87 /// Visual Studio 2015 (Visual C++ 14.0)
88 /// </summary>
90 /// <summary>
91 /// Visual Studio 2015 (Visual C++ 14.0)
92 /// </summary>
94 /// <summary>
95 /// Visual Studio 2017 (Visual C++ 15.0)
96 /// </summary>
98 /// <summary>
99 /// Visual Studio 2019 (Visual C++ 16.0)
100 /// </summary>
102 /// <summary>
103 /// Visual Studio 2022 (Visual C++ 17.0)
104 /// </summary>
106}
107
108/// <summary>
109/// Which static analyzer to use
110/// </summary>
112{
113 /// <summary>
114 /// Do not perform static analysis
115 /// </summary>
116 None,
117 /// <summary>
118 /// Use the built-in Visual C++ static analyzer
119 /// </summary>
120 VisualCpp,
121 /// <summary>
122 /// Use PVS-Studio for static analysis
123 /// </summary>
124 PVSStudio,
125}
126
127/// <summary>
128/// The type of target
129/// </summary>
130public enum TargetType
131{
132 /// <summary>
133 /// Cooked monolithic game executable (GameName.exe). Also used for a game-agnostic engine executable (UE4Game.exe or RocketGame.exe)
134 /// </summary>
135 Game,
136 /// <summary>
137 /// Uncooked modular editor executable and DLLs (UE4Editor.exe, UE4Editor*.dll, GameName*.dll)
138 /// </summary>
139 Editor,
140 /// <summary>
141 /// Cooked monolithic game client executable (GameNameClient.exe, but no server code)
142 /// </summary>
143 Client,
144 /// <summary>
145 /// Cooked monolithic game server executable (GameNameServer.exe, but no client code)
146 /// </summary>
147 Server,
148 /// <summary>
149 /// Program (standalone program, e.g. ShaderCompileWorker.exe, can be modular or monolithic depending on the program)
150 /// </summary>
151 Program,
152}
153
154/// <summary>
155/// The type of configuration a target can be built for
156/// </summary>
158{
159 /// <summary>
160 /// Unknown
161 /// </summary>
162 Unknown,
163 /// <summary>
164 /// Debug configuration
165 /// </summary>
166 Debug,
167 /// <summary>
168 /// DebugGame configuration; equivalent to development, but with optimization disabled for game modules
169 /// </summary>
170 DebugGame,
171 /// <summary>
172 /// Development configuration
173 /// </summary>
175 /// <summary>
176 /// Shipping configuration
177 /// </summary>
178 Shipping,
179 /// <summary>
180 /// Test configuration
181 /// </summary>
182 Test,
183}
184
185/// <summary>
186/// Output type for the static analyzer. This currently only works for the Clang static analyzer.
187/// The Clang static analyzer can do either Text, which prints the analysis to stdout, or
188/// html, where it writes out a navigable HTML page for each issue that it finds, per file.
189/// The HTML is output in the same directory as the object fil that would otherwise have
190/// been generated.
191/// All other analyzers default automatically to Text.
192/// </summary>
194{
195 /// <summary>
196 /// Output the analysis to stdout.
197 /// </summary>
198 Text,
199 /// <summary>
200 /// Output the analysis to an HTML file in the object folder.
201 /// </summary>
202 Html,
203}
204
205/// <summary>
206/// What version of include order to use when compiling.
207/// </summary>
209{
210 /// <summary>
211 /// Include order used in Unreal 5.0
212 /// </summary>
213 Unreal5_0,
214 /// <summary>
215 /// Include order used in Unreal 5.1
216 /// </summary>
217 Unreal5_1,
218 /// <summary>
219 /// Always use the latest version of include order.
220 /// </summary>
221 Latest,
222 /// <summary>
223 /// Contains the oldest version of include order that the engine supports.
224 /// </summary>
225 Oldest,
226}
227
228/// <summary>
229/// Output type for the static analyzer. This currently only works for the Clang static analyzer.
230/// The Clang static analyzer can do a shallow quick analysis. However the default deep is recommended.
231/// </summary>
233{
234 /// <summary>
235 /// Default deep analysis.
236 /// </summary>
237 Deep,
238 /// <summary>
239 /// Quick analysis. Not recommended.
240 /// </summary>
241 Shallow,
242}
243
244/// <summary>
245/// Specifies which C language standard to use. This enum should be kept in order, so that toolchains can check whether the requested setting is >= values that they support.
246/// </summary>
248{
249 /// <summary>
250 /// Use the default standard version
251 /// </summary>
252 Default,
253 /// <summary>
254 /// Supports C89
255 /// </summary>
256 C89,
257 /// <summary>
258 /// Supports C99
259 /// </summary>
260 C99,
261 /// <summary>
262 /// Supports C11
263 /// </summary>
264 C11,
265 /// <summary>
266 /// Supports C17
267 /// </summary>
268 C17,
269 /// <summary>
270 /// Latest standard supported by the compiler
271 /// </summary>
272 Latest,
273}
274
275/// <summary>
276/// Optimization mode for compiler settings
277/// </summary>
279{
280 /// <summary>
281 /// Favor speed
282 /// </summary>
283 Speed,
284 /// <summary>
285 /// Favor minimal code size
286 /// </summary>
287 Size,
288 /// <summary>
289 /// Somewhere between Speed and Size
290 /// </summary>
292}
293
294/// <summary>
295/// Specifies the architecture for code generation on x64 for windows platforms.
296/// Note that by enabling this you are changing the minspec for the PC platform, and the resultant executable will crash on machines without AVX support.
297/// For more details please see https://learn.microsoft.com/en-us/cpp/build/reference/arch-x64
298/// </summary>
300{
301 /// <summary>
302 /// No minimum architecure
303 /// </summary>
304 None,
305 /// <summary>
306 /// Enables the use of Intel Advanced Vector Extensions instructions
307 /// </summary>
308 AVX,
309 /// <summary>
310 /// Enables the use of Intel Advanced Vector Extensions 2 instructions
311 /// </summary>
312 AVX2,
313 /// <summary>
314 /// Enables the use of Intel Advanced Vector Extensions 512 instructions
315 /// </summary>
316 AVX512,
317 /// <summary>
318 /// Use the default minimum architecure
319 /// </summary>
320 Default,
321}
322
323/// <summary>
324/// Floating point math semantics
325/// </summary>
327{
328 /// <summary>
329 /// Use the default semantics for the platform.
330 /// </summary>
331 Default,
332 /// <summary>
333 /// FP math is IEEE-754 compliant, assuming that FP exceptions are disabled and the rounding
334 /// mode is round-to-nearest-even.
335 /// </summary>
336 Precise,
337 /// <summary>
338 /// FP math isn't IEEE-754 compliant: the compiler is allowed to transform math expressions
339 /// in a ways that might result in differently rounded results from what IEEE-754 requires.
340 /// </summary>
341 Imprecise,
342}
343
344/// <summary>
345/// Debug info mode for compiler settings to determine how much debug info is available
346/// </summary>
347public enum DebugInfoMode
348{
349 /// <summary>
350 /// Disable all debugging info.
351 /// MSVC: object files will be compiled without /Z7 or /Zi but pdbs will still be created
352 /// callstacks should be available in this mode but there have been reports with them being incorrect
353 /// </summary>
354 None,
355 /// <summary>
356 /// Enable debug info for engine modules
357 /// </summary>
358 Engine,
359 /// <summary>
360 /// Enable debug info for engine plugins
361 /// </summary>
363 /// <summary>
364 /// Enable debug info for project modules
365 /// </summary>
366 Project,
367 /// <summary>
368 /// Enable debug info for project plugins
369 /// </summary>
371 /// <summary>
372 /// Only include debug info for engine modules and plugins
373 /// </summary>
375 /// <summary>
376 /// Only include debug info for project modules and project plugins
377 /// </summary>
379 /// <summary>
380 /// Include full debugging information for all modules
381 /// </summary>
382 Full,
383}
384
385/// <summary>
386/// Target ARM64 CPU for codegen. This defines different ARM ISA and extension targets
387/// </summary>
389{
390 /// <summary>
391 /// Default ARMv8.0-A ISA target CPU, supported by every 64 bit ARM CPU
392 /// </summary>
393 Default,
394 /// <summary>
395 /// AWS Graviton2 CPU - ARM Neoverse N1 uArch with ARMv8.2-A ISA + FP16 + rcpc + dotprod + crypto extensions
396 /// </summary>
397 Graviton2,
398 /// <summary>
399 /// AWS Graviton3 CPU - ARM Neoverse V1 uArch with AMRv8.4-A ISA + SVE + bf16 + rng + crypto extensions
400 /// </summary>
401 Graviton3,
402}
403
404/// <summary>
405/// Which static analyzer to use
406/// </summary>
407public enum StaticAnalyzer
408{
409 /// <summary>
410 /// Do not perform static analysis
411 /// </summary>
412 None,
413 /// <summary>
414 /// Use the default static analyzer for the selected compiler, if it has one. For
415 /// Visual Studio and Clang, this means using their built-in static analysis tools.
416 /// Any compiler that doesn't support static analysis will ignore this option.
417 /// </summary>
418 Default,
419 /// <summary>
420 /// Use the built-in Visual C++ static analyzer
421 /// </summary>
422 VisualCpp,
423 /// <summary>
424 /// Use PVS-Studio for static analysis
425 /// </summary>
426 PVSStudio,
427 /// <summary>
428 /// Use clang for static analysis. This forces the compiler to clang.
429 /// </summary>
430 Clang,
431}
432
433/// <summary>
434/// Output type for the static analyzer. This currently only works for the Clang static analyzer.
435/// The Clang static analyzer can do either Text, which prints the analysis to stdout, or
436/// html, where it writes out a navigable HTML page for each issue that it finds, per file.
437/// The HTML is output in the same directory as the object file that would otherwise have
438/// been generated.
439/// All other analyzers default automatically to Text.
440/// </summary>
442{
443 /// <summary>
444 /// Output the analysis to stdout.
445 /// </summary>
446 Text,
447 /// <summary>
448 /// Output the analysis to an HTML file in the object folder.
449 /// </summary>
450 Html,
451}
452
453/// <summary>
454/// The type of project files to generate
455/// </summary>
457{
458
459 Make,
460
461 CMake,
462
463 QMake,
464
465 KDevelop,
466
467 CodeLite,
468
469 VisualStudio,
470
471 VisualStudio2012,
472
473 VisualStudio2013,
474
476
478
480
482
483 XCode,
484
485 Eddie,
486
487 VisualStudioCode,
488
489 VisualStudioMac,
490
491 CLion,
492
493 Rider,
494}
495
496/// <summary>
497/// Enum for the type of documentation to generate
498/// </summary>
500{
501
502 BuildConfiguration,
503
504 ModuleRules,
505
506 TargetRules,
507}
508
509
510public enum QueryType
511{
512
513 Capabilities,
514
515 AvailableTargets,
516
517 TargetDetails,
518}
519
520
521public enum PipAction
522{
523
524 OnlySetupParse,
525
526 OnlyInstall,
527
528 GenRequirements,
529
530 Setup,
531
532 Parse,
533
534 Install,
535
536 ViewLicenses,
537}
538
539
540/// <summary>Unreal Build Tool defines the Unreal project structure and provides unified source building utilities over multiple platforms</summary>
541public abstract class UbtConfigGenerated : ToolConfig
542{
543 public override string Name => "Ubt";
544 public override string CliName => "";
545 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
546
547/// <summary>The amount of detail to write to the log
548/// Increase output verbosity</summary>
549 public virtual UbtConfig Verbose(bool present = true)
550 {
551 if (present)
552 {
553 AppendArgument(new UnrealToolArgument(
554 "-Verbose",
555 Value: null,
556 Setter: '=',
557 Meta: new(
559 AllowMultiple: false
560 )
561 ));
562 }
563 return (UbtConfig) this;
564 }
565
566
567/// <summary>The amount of detail to write to the log
568/// Increase output verbosity more</summary>
569 public virtual UbtConfig VeryVerbose(bool present = true)
570 {
571 if (present)
572 {
573 AppendArgument(new UnrealToolArgument(
574 "-VeryVerbose",
575 Value: null,
576 Setter: '=',
577 Meta: new(
579 AllowMultiple: false
580 )
581 ));
582 }
583 return (UbtConfig) this;
584 }
585
586
587/// <summary>Specifies the path to a log file to write. Note that the default mode (eg. building, generating project files) will create a log file by default if this not specified.
588/// Specify a log file location instead of the default Engine/Programs/UnrealBuildTool/Log.txt
589/// Specify a log file location instead of the default Engine/Programs/UnrealHeaderTool/Saved/Logs/UnrealHeaderTool.log</summary>
590 public virtual UbtConfig Log(object val = null)
591 {
592 if (true)
593 {
594 AppendArgument(new UnrealToolArgument(
595 "-Log",
596 Value: val?.ToString(),
597 Setter: '=',
598 Meta: new(
600 AllowMultiple: false
601 )
602 ));
603 }
604 return (UbtConfig) this;
605 }
606
607
608/// <summary>Whether to include timestamps in the log
609/// Include timestamps in the log</summary>
610 public virtual UbtConfig Timestamps(bool? val = null)
611 {
612 if (true)
613 {
614 AppendArgument(new UnrealToolArgument(
615 "-Timestamps",
616 Value: val?.ToString(),
617 Setter: '=',
618 Meta: new(
620 AllowMultiple: false
621 )
622 ));
623 }
624 return (UbtConfig) this;
625 }
626
627
628/// <summary>Whether to format messages in MsBuild format
629/// Format messages for msbuild
630/// Whether UBT is invoked from MSBuild.
631/// If false will, disable bDontBundleLibrariesInAPK, unless forced .</summary>
632 public virtual UbtConfig FromMsBuild(bool? val = null)
633 {
634 if (true)
635 {
636 AppendArgument(new UnrealToolArgument(
637 "-FromMsBuild",
638 Value: val?.ToString(),
639 Setter: '=',
640 Meta: new(
642 AllowMultiple: false
643 )
644 ));
645 }
646 return (UbtConfig) this;
647 }
648
649
650/// <summary>Whether to write progress markup in a format that can be parsed by other programs
651/// Write progress messages in a format that can be parsed by other programs</summary>
652 public virtual UbtConfig Progress(bool? val = null)
653 {
654 if (true)
655 {
656 AppendArgument(new UnrealToolArgument(
657 "-Progress",
658 Value: val?.ToString(),
659 Setter: '=',
660 Meta: new(
662 AllowMultiple: false
663 )
664 ));
665 }
666 return (UbtConfig) this;
667 }
668
669
670/// <summary>Whether to ignore the mutex
671/// Allow more than one instance of the program to run at once</summary>
672 public virtual UbtConfig NoMutex(bool? val = null)
673 {
674 if (true)
675 {
676 AppendArgument(new UnrealToolArgument(
677 "-NoMutex",
678 Value: val?.ToString(),
679 Setter: '=',
680 Meta: new(
682 AllowMultiple: false
683 )
684 ));
685 }
686 return (UbtConfig) this;
687 }
688
689
690/// <summary>Whether to wait for the mutex rather than aborting immediately
691/// Wait for another instance to finish and then start, rather than aborting immediately</summary>
692 public virtual UbtConfig WaitMutex(bool? val = null)
693 {
694 if (true)
695 {
696 AppendArgument(new UnrealToolArgument(
697 "-WaitMutex",
698 Value: val?.ToString(),
699 Setter: '=',
700 Meta: new(
702 AllowMultiple: false
703 )
704 ));
705 }
706 return (UbtConfig) this;
707 }
708
709
710/// <summary>Whether to wait for the mutex rather than aborting immediately
711/// Remote tool ini directory</summary>
712 public virtual UbtConfig RemoteIni(object val = null)
713 {
714 if (true)
715 {
716 AppendArgument(new UnrealToolArgument(
717 "-RemoteIni",
718 Value: val?.ToString(),
719 Setter: '=',
720 Meta: new(
722 AllowMultiple: false
723 )
724 ));
725 }
726 return (UbtConfig) this;
727 }
728
729
730/// <summary>
731/// The mode to execute
732/// </summary>
733 public virtual UbtConfig Mode(object val = null)
734 {
735 if (true)
736 {
737 AppendArgument(new UnrealToolArgument(
738 "-Mode",
739 Value: val?.ToString(),
740 Setter: '=',
741 Meta: new(
743 AllowMultiple: false
744 )
745 ));
746 }
747 return (UbtConfig) this;
748 }
749
750
751/// <summary>The mode to execute
752/// Clean build products. Equivalent to -Mode=Clean</summary>
753 public virtual UbtConfig Clean(bool present = true)
754 {
755 if (present)
756 {
757 AppendArgument(new UnrealToolArgument(
758 "-Clean",
759 Value: null,
760 Setter: '=',
761 Meta: new(
763 AllowMultiple: false
764 )
765 ));
766 }
767 return (UbtConfig) this;
768 }
769
770
771/// <summary>The mode to execute
772/// Generate project files based on IDE preference. Equivalent to -Mode=GenerateProjectFiles</summary>
773 public virtual UbtConfig ProjectFiles(bool present = true)
774 {
775 if (present)
776 {
777 AppendArgument(new UnrealToolArgument(
778 "-ProjectFiles",
779 Value: null,
780 Setter: '=',
781 Meta: new(
783 AllowMultiple: false
784 )
785 ));
786 }
787 return (UbtConfig) this;
788 }
789
790
791/// <summary>The mode to execute
792/// Generate project files in specified format. May be used multiple times.</summary>
793 public virtual UbtConfig ProjectFileFormat(bool present = true)
794 {
795 if (present)
796 {
797 AppendArgument(new UnrealToolArgument(
798 "-ProjectFileFormat",
799 Value: null,
800 Setter: '=',
801 Meta: new(
803 AllowMultiple: false
804 )
805 ));
806 }
807 return (UbtConfig) this;
808 }
809
810
811/// <summary>The mode to execute
812/// Generate Linux Makefile
813/// Generate Makefile</summary>
814 public virtual UbtConfig Makefile(bool present = true)
815 {
816 if (present)
817 {
818 AppendArgument(new UnrealToolArgument(
819 "-Makefile",
820 Value: null,
821 Setter: '=',
822 Meta: new(
824 AllowMultiple: false
825 )
826 ));
827 }
828 return (UbtConfig) this;
829 }
830
831
832/// <summary>The mode to execute
833/// Generate project files for CMake</summary>
834 public virtual UbtConfig CMakefile(bool present = true)
835 {
836 if (present)
837 {
838 AppendArgument(new UnrealToolArgument(
839 "-CMakefile",
840 Value: null,
841 Setter: '=',
842 Meta: new(
844 AllowMultiple: false
845 )
846 ));
847 }
848 return (UbtConfig) this;
849 }
850
851
852/// <summary>The mode to execute
853/// Generate project files for QMake</summary>
854 public virtual UbtConfig QMakefile(bool present = true)
855 {
856 if (present)
857 {
858 AppendArgument(new UnrealToolArgument(
859 "-QMakefile",
860 Value: null,
861 Setter: '=',
862 Meta: new(
864 AllowMultiple: false
865 )
866 ));
867 }
868 return (UbtConfig) this;
869 }
870
871
872/// <summary>The mode to execute
873/// Generate project files for KDevelop</summary>
874 public virtual UbtConfig KDevelopfile(bool present = true)
875 {
876 if (present)
877 {
878 AppendArgument(new UnrealToolArgument(
879 "-KDevelopfile",
880 Value: null,
881 Setter: '=',
882 Meta: new(
884 AllowMultiple: false
885 )
886 ));
887 }
888 return (UbtConfig) this;
889 }
890
891
892/// <summary>The mode to execute
893/// Generate project files for Codelite</summary>
894 public virtual UbtConfig CodeliteFiles(bool present = true)
895 {
896 if (present)
897 {
898 AppendArgument(new UnrealToolArgument(
899 "-CodeliteFiles",
900 Value: null,
901 Setter: '=',
902 Meta: new(
904 AllowMultiple: false
905 )
906 ));
907 }
908 return (UbtConfig) this;
909 }
910
911
912/// <summary>The mode to execute
913/// Generate project files for XCode</summary>
914 public virtual UbtConfig XCodeProjectFiles(bool present = true)
915 {
916 if (present)
917 {
918 AppendArgument(new UnrealToolArgument(
919 "-XCodeProjectFiles",
920 Value: null,
921 Setter: '=',
922 Meta: new(
924 AllowMultiple: false
925 )
926 ));
927 }
928 return (UbtConfig) this;
929 }
930
931
932/// <summary>
933/// The mode to execute
934/// </summary>
935 public virtual UbtConfig EdditProjectFiles(bool present = true)
936 {
937 if (present)
938 {
939 AppendArgument(new UnrealToolArgument(
940 "-EdditProjectFiles",
941 Value: null,
942 Setter: '=',
943 Meta: new(
944 Compatibility: UnrealCompatibility.UE_4,
945 AllowMultiple: false
946 )
947 ));
948 }
949 return (UbtConfig) this;
950 }
951
952
953/// <summary>The mode to execute
954/// Generate project files for Visual Studio Code</summary>
955 public virtual UbtConfig VSCode(bool present = true)
956 {
957 if (present)
958 {
959 AppendArgument(new UnrealToolArgument(
960 "-VSCode",
961 Value: null,
962 Setter: '=',
963 Meta: new(
965 AllowMultiple: false
966 )
967 ));
968 }
969 return (UbtConfig) this;
970 }
971
972
973/// <summary>The mode to execute
974/// Generate project files for Visual Studio Mac</summary>
975 public virtual UbtConfig VSMac(bool present = true)
976 {
977 if (present)
978 {
979 AppendArgument(new UnrealToolArgument(
980 "-VSMac",
981 Value: null,
982 Setter: '=',
983 Meta: new(
985 AllowMultiple: false
986 )
987 ));
988 }
989 return (UbtConfig) this;
990 }
991
992
993/// <summary>The mode to execute
994/// Generate project files for CLion</summary>
995 public virtual UbtConfig CLion(bool present = true)
996 {
997 if (present)
998 {
999 AppendArgument(new UnrealToolArgument(
1000 "-CLion",
1001 Value: null,
1002 Setter: '=',
1003 Meta: new(
1005 AllowMultiple: false
1006 )
1007 ));
1008 }
1009 return (UbtConfig) this;
1010 }
1011
1012
1013/// <summary>The mode to execute
1014/// Generate project files for Rider</summary>
1015 public virtual UbtConfig Rider(bool present = true)
1016 {
1017 if (present)
1018 {
1019 AppendArgument(new UnrealToolArgument(
1020 "-Rider",
1021 Value: null,
1022 Setter: '=',
1023 Meta: new(
1025 AllowMultiple: false
1026 )
1027 ));
1028 }
1029 return (UbtConfig) this;
1030 }
1031
1032
1033/// <summary>
1034/// Use existing static libraries for all engine modules in this target.
1035/// </summary>
1036 public virtual UbtConfig UsePrecompiled(bool? val = null)
1037 {
1038 if (true)
1039 {
1040 AppendArgument(new UnrealToolArgument(
1041 "-UsePrecompiled",
1042 Value: val?.ToString(),
1043 Setter: '=',
1044 Meta: new(
1046 AllowMultiple: false
1047 )
1048 ));
1049 }
1050 return (UbtConfig) this;
1051 }
1052
1053
1054/// <summary>Whether XGE may be used.
1055/// Whether XGE may be used if available, default is true.</summary>
1056 public virtual UbtConfig NoXGE(bool present = true)
1057 {
1058 if (present)
1059 {
1060 AppendArgument(new UnrealToolArgument(
1061 "-NoXGE",
1062 Value: null,
1063 Setter: '=',
1064 Meta: new(
1066 AllowMultiple: false
1067 )
1068 ));
1069 }
1070 return (UbtConfig) this;
1071 }
1072
1073
1074/// <summary>Whether FASTBuild may be used.
1075/// Whether FASTBuild may be used if available, default is true.</summary>
1076 public virtual UbtConfig NoFASTBuild(bool present = true)
1077 {
1078 if (present)
1079 {
1080 AppendArgument(new UnrealToolArgument(
1081 "-NoFASTBuild",
1082 Value: null,
1083 Setter: '=',
1084 Meta: new(
1086 AllowMultiple: false
1087 )
1088 ));
1089 }
1090 return (UbtConfig) this;
1091 }
1092
1093
1094/// <summary>
1095/// Enables support for very fast iterative builds by caching target data. Turning this on causes Unreal Build Tool to emit
1096/// 'UBT Makefiles' for targets when they are built the first time. Subsequent builds will load these Makefiles and begin
1097/// outdatedness checking and build invocation very quickly. The caveat is that if source files are added or removed to
1098/// the project, UBT will need to gather information about those in order for your build to complete successfully. Currently,
1099/// you must run the project file generator after adding/removing source files to tell UBT to re-gather this information.
1100///
1101/// Events that can invalidate the 'UBT Makefile':
1102/// - Adding/removing .cpp files
1103/// - Adding/removing .h files with UObjects
1104/// - Adding new UObject types to a file that did not previously have any
1105/// - Changing global build settings (most settings in this file qualify)
1106/// - Changed code that affects how Unreal Header Tool works
1107///
1108/// You can force regeneration of the 'UBT Makefile' by passing the '-gather' argument, or simply regenerating project files.
1109///
1110/// This also enables the fast include file dependency scanning and caching system that allows Unreal Build Tool to detect out
1111/// of date dependencies very quickly. When enabled, a deep C++ include graph does not have to be generated, and instead,
1112/// we only scan and cache indirect includes for after a dependent build product was already found to be out of date. During the
1113/// next build, we will load those cached indirect includes and check for outdatedness.
1114/// </summary>
1115 public virtual UbtConfig NoUBTMakefiles(bool present = true)
1116 {
1117 if (present)
1118 {
1119 AppendArgument(new UnrealToolArgument(
1120 "-NoUBTMakefiles",
1121 Value: null,
1122 Setter: '=',
1123 Meta: new(
1125 AllowMultiple: false
1126 )
1127 ));
1128 }
1129 return (UbtConfig) this;
1130 }
1131
1132
1133/// <summary>Number of actions that can be executed in parallel. If 0 then code will pick a default based
1134/// on the number of cores available. Only applies to the ParallelExecutor
1135/// Number of actions that can be executed in parallel. If 0 then code will pick a default based
1136/// on the number of cores and memory available. Applies to the ParallelExecutor, HybridExecutor, and LocalExecutor</summary>
1137 public virtual UbtConfig MaxParallelActions(double? val = null)
1138 {
1139 if (true)
1140 {
1141 AppendArgument(new UnrealToolArgument(
1142 "-MaxParallelActions",
1143 Value: val?.ToString(),
1144 Setter: '=',
1145 Meta: new(
1147 AllowMultiple: false
1148 )
1149 ));
1150 }
1151 return (UbtConfig) this;
1152 }
1153
1154
1155/// <summary>
1156/// If true, force header regeneration. Intended for the build machine.
1157/// </summary>
1158 public virtual UbtConfig ForceHeaderGeneration(bool? val = null)
1159 {
1160 if (true)
1161 {
1162 AppendArgument(new UnrealToolArgument(
1163 "-ForceHeaderGeneration",
1164 Value: val?.ToString(),
1165 Setter: '=',
1166 Meta: new(
1168 AllowMultiple: false
1169 )
1170 ));
1171 }
1172 return (UbtConfig) this;
1173 }
1174
1175
1176/// <summary>
1177/// If true, do not build UHT, assume it is already built.
1178/// </summary>
1179 public virtual UbtConfig NoBuildUHT(bool? val = null)
1180 {
1181 if (true)
1182 {
1183 AppendArgument(new UnrealToolArgument(
1184 "-NoBuildUHT",
1185 Value: val?.ToString(),
1186 Setter: '=',
1187 Meta: new(
1188 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1,
1189 AllowMultiple: false
1190 )
1191 ));
1192 }
1193 return (UbtConfig) this;
1194 }
1195
1196
1197/// <summary>If true, fail if any of the generated header files is out of date.
1198/// Consider any changes to output files as being an error</summary>
1199 public virtual UbtConfig FailIfGeneratedCodeChanges(bool? val = null)
1200 {
1201 if (true)
1202 {
1203 AppendArgument(new UnrealToolArgument(
1204 "-FailIfGeneratedCodeChanges",
1205 Value: val?.ToString(),
1206 Setter: '=',
1207 Meta: new(
1209 AllowMultiple: false
1210 )
1211 ));
1212 }
1213 return (UbtConfig) this;
1214 }
1215
1216
1217/// <summary>
1218/// True if hot-reload from IDE is allowed.
1219/// </summary>
1220 public virtual UbtConfig NoHotReloadFromIDE(bool present = true)
1221 {
1222 if (present)
1223 {
1224 AppendArgument(new UnrealToolArgument(
1225 "-NoHotReloadFromIDE",
1226 Value: null,
1227 Setter: '=',
1228 Meta: new(
1230 AllowMultiple: false
1231 )
1232 ));
1233 }
1234 return (UbtConfig) this;
1235 }
1236
1237
1238/// <summary>
1239/// Whether to skip compiling rules assemblies and just assume they are valid
1240/// </summary>
1241 public virtual UbtConfig SkipRulesCompile(bool? val = null)
1242 {
1243 if (true)
1244 {
1245 AppendArgument(new UnrealToolArgument(
1246 "-SkipRulesCompile",
1247 Value: val?.ToString(),
1248 Setter: '=',
1249 Meta: new(
1251 AllowMultiple: false
1252 )
1253 ));
1254 }
1255 return (UbtConfig) this;
1256 }
1257
1258
1259/// <summary>
1260/// Foreign plugin to compile against this target
1261/// </summary>
1262 public virtual UbtConfig Plugin(object val = null)
1263 {
1264 if (true)
1265 {
1266 AppendArgument(new UnrealToolArgument(
1267 "-Plugin",
1268 Value: val?.ToString(),
1269 Setter: '=',
1270 Meta: new(
1272 AllowMultiple: false
1273 )
1274 ));
1275 }
1276 return (UbtConfig) this;
1277 }
1278
1279
1280/// <summary>
1281/// Set of module names to compile.
1282/// </summary>
1283 public virtual UbtConfig Module(params object[] values)
1284 {
1285 if (true)
1286 {
1287 if (values != null)
1288 foreach (var val in values)
1289 {
1290 AppendArgument(new UnrealToolArgument(
1291 "-Module",
1292 Value: val.ToString(),
1293 Setter: '=',
1294 Meta: new(
1296 AllowMultiple: true
1297 )
1298 ));
1299 }
1300 }
1301 return (UbtConfig) this;
1302 }
1303
1304
1305/// <summary>
1306/// Individual file(s) to compile
1307/// </summary>
1308 public virtual UbtConfig SingleFile(params object[] values)
1309 {
1310 if (true)
1311 {
1312 if (values != null)
1313 foreach (var val in values)
1314 {
1315 AppendArgument(new UnrealToolArgument(
1316 "-SingleFile",
1317 Value: val.ToString(),
1318 Setter: '=',
1319 Meta: new(
1321 AllowMultiple: true
1322 )
1323 ));
1324 }
1325 }
1326 return (UbtConfig) this;
1327 }
1328
1329
1330/// <summary>
1331/// Whether to perform hot reload for this target
1332/// </summary>
1333 public virtual UbtConfig NoHotReload(HotReloadMode? val = null)
1334 {
1335 if (true)
1336 {
1337 AppendArgument(new UnrealToolArgument(
1338 "-NoHotReload",
1339 Value: val?.ToString(),
1340 Setter: '=',
1341 Meta: new(
1343 AllowMultiple: false
1344 )
1345 ));
1346 }
1347 return (UbtConfig) this;
1348 }
1349
1350
1351/// <summary>
1352/// Whether to perform hot reload for this target
1353/// </summary>
1354 public virtual UbtConfig ForceHotReload(HotReloadMode? val = null)
1355 {
1356 if (true)
1357 {
1358 AppendArgument(new UnrealToolArgument(
1359 "-ForceHotReload",
1360 Value: val?.ToString(),
1361 Setter: '=',
1362 Meta: new(
1364 AllowMultiple: false
1365 )
1366 ));
1367 }
1368 return (UbtConfig) this;
1369 }
1370
1371
1372/// <summary>
1373/// Whether to perform hot reload for this target
1374/// </summary>
1375 public virtual UbtConfig LiveCoding(HotReloadMode? val = null)
1376 {
1377 if (true)
1378 {
1379 AppendArgument(new UnrealToolArgument(
1380 "-LiveCoding",
1381 Value: val?.ToString(),
1382 Setter: '=',
1383 Meta: new(
1385 AllowMultiple: false
1386 )
1387 ));
1388 }
1389 return (UbtConfig) this;
1390 }
1391
1392
1393/// <summary>
1394/// Export the actions for the target to a file
1395/// </summary>
1396 public virtual UbtConfig WriteActions(params object[] values)
1397 {
1398 if (true)
1399 {
1400 if (values != null)
1401 foreach (var val in values)
1402 {
1403 AppendArgument(new UnrealToolArgument(
1404 "-WriteActions",
1405 Value: val.ToString(),
1406 Setter: '=',
1407 Meta: new(
1408 Compatibility: UnrealCompatibility.UE_4,
1409 AllowMultiple: true
1410 )
1411 ));
1412 }
1413 }
1414 return (UbtConfig) this;
1415 }
1416
1417
1418/// <summary>
1419/// Path to a file containing a list of modules that may be modified for live coding.
1420/// </summary>
1421 public virtual UbtConfig LiveCodingModules(object val = null)
1422 {
1423 if (true)
1424 {
1425 AppendArgument(new UnrealToolArgument(
1426 "-LiveCodingModules",
1427 Value: val?.ToString(),
1428 Setter: '=',
1429 Meta: new(
1431 AllowMultiple: false
1432 )
1433 ));
1434 }
1435 return (UbtConfig) this;
1436 }
1437
1438
1439/// <summary>
1440/// Path to the manifest for passing info about the output to live coding
1441/// </summary>
1442 public virtual UbtConfig LiveCodingManifest(object val = null)
1443 {
1444 if (true)
1445 {
1446 AppendArgument(new UnrealToolArgument(
1447 "-LiveCodingManifest",
1448 Value: val?.ToString(),
1449 Setter: '=',
1450 Meta: new(
1452 AllowMultiple: false
1453 )
1454 ));
1455 }
1456 return (UbtConfig) this;
1457 }
1458
1459
1460/// <summary>
1461/// Suppress messages about building this target
1462/// </summary>
1463 public virtual UbtConfig Quiet(bool? val = null)
1464 {
1465 if (true)
1466 {
1467 AppendArgument(new UnrealToolArgument(
1468 "-Quiet",
1469 Value: val?.ToString(),
1470 Setter: '=',
1471 Meta: new(
1473 AllowMultiple: false
1474 )
1475 ));
1476 }
1477 return (UbtConfig) this;
1478 }
1479
1480
1481/// <summary>
1482/// Build all the modules that are valid for this target type. Used for CIS and making installed engine builds.
1483/// </summary>
1484 public virtual UbtConfig AllModules(bool? val = null)
1485 {
1486 if (true)
1487 {
1488 AppendArgument(new UnrealToolArgument(
1489 "-AllModules",
1490 Value: val?.ToString(),
1491 Setter: '=',
1492 Meta: new(
1494 AllowMultiple: false
1495 )
1496 ));
1497 }
1498 return (UbtConfig) this;
1499 }
1500
1501
1502/// <summary>
1503/// Additional plugins that are built for this target type but not enabled.
1504/// </summary>
1505 public virtual UbtConfig BuildPlugin(params object[] values)
1506 {
1507 if (true)
1508 {
1509 AppendArgument(new UnrealToolArgument(
1510 "-BuildPlugin",
1511 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
1512 Setter: '=',
1513 Meta: new(
1515 AllowMultiple: true
1516 )
1517 ));
1518 }
1519 return (UbtConfig) this;
1520 }
1521
1522
1523/// <summary>
1524/// Additional plugins that should be included for this target.
1525/// </summary>
1526 public virtual UbtConfig EnablePlugin(params object[] values)
1527 {
1528 if (true)
1529 {
1530 AppendArgument(new UnrealToolArgument(
1531 "-EnablePlugin",
1532 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
1533 Setter: '=',
1534 Meta: new(
1536 AllowMultiple: true
1537 )
1538 ));
1539 }
1540 return (UbtConfig) this;
1541 }
1542
1543
1544/// <summary>
1545/// List of plugins to be disabled for this target. Note that the project file may still reference them, so they should be marked
1546/// as optional to avoid failing to find them at runtime.
1547/// </summary>
1548 public virtual UbtConfig DisablePlugin(params object[] values)
1549 {
1550 if (true)
1551 {
1552 AppendArgument(new UnrealToolArgument(
1553 "-DisablePlugin",
1554 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
1555 Setter: '=',
1556 Meta: new(
1558 AllowMultiple: true
1559 )
1560 ));
1561 }
1562 return (UbtConfig) this;
1563 }
1564
1565
1566/// <summary>
1567/// Whether this target should be compiled as a DLL. Requires LinkType to be set to TargetLinkType.Monolithic.
1568/// </summary>
1569 public virtual UbtConfig CompileAsDll(bool? val = null)
1570 {
1571 if (true)
1572 {
1573 AppendArgument(new UnrealToolArgument(
1574 "-CompileAsDll",
1575 Value: val?.ToString(),
1576 Setter: '=',
1577 Meta: new(
1579 AllowMultiple: false
1580 )
1581 ));
1582 }
1583 return (UbtConfig) this;
1584 }
1585
1586
1587/// <summary>
1588/// Whether to compile the Chaos physics plugin.
1589/// </summary>
1590 public virtual UbtConfig NoCompileChaos(bool present = true)
1591 {
1592 if (present)
1593 {
1594 AppendArgument(new UnrealToolArgument(
1595 "-NoCompileChaos",
1596 Value: null,
1597 Setter: '=',
1598 Meta: new(
1599 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
1600 AllowMultiple: false
1601 )
1602 ));
1603 }
1604 return (UbtConfig) this;
1605 }
1606
1607
1608/// <summary>
1609/// Whether to compile the Chaos physics plugin.
1610/// </summary>
1611 public virtual UbtConfig CompileChaos(bool present = true)
1612 {
1613 if (present)
1614 {
1615 AppendArgument(new UnrealToolArgument(
1616 "-CompileChaos",
1617 Value: null,
1618 Setter: '=',
1619 Meta: new(
1620 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
1621 AllowMultiple: false
1622 )
1623 ));
1624 }
1625 return (UbtConfig) this;
1626 }
1627
1628
1629/// <summary>
1630/// Whether to use the Chaos physics interface. This overrides the physx flags to disable APEX and NvCloth
1631/// </summary>
1632 public virtual UbtConfig NoUseChaos(bool present = true)
1633 {
1634 if (present)
1635 {
1636 AppendArgument(new UnrealToolArgument(
1637 "-NoUseChaos",
1638 Value: null,
1639 Setter: '=',
1640 Meta: new(
1641 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
1642 AllowMultiple: false
1643 )
1644 ));
1645 }
1646 return (UbtConfig) this;
1647 }
1648
1649
1650/// <summary>
1651/// Whether to use the Chaos physics interface. This overrides the physx flags to disable APEX and NvCloth
1652/// </summary>
1653 public virtual UbtConfig UseChaos(bool present = true)
1654 {
1655 if (present)
1656 {
1657 AppendArgument(new UnrealToolArgument(
1658 "-UseChaos",
1659 Value: null,
1660 Setter: '=',
1661 Meta: new(
1662 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
1663 AllowMultiple: false
1664 )
1665 ));
1666 }
1667 return (UbtConfig) this;
1668 }
1669
1670
1671/// <summary>
1672/// Enable RTTI for all modules.
1673/// </summary>
1674 public virtual UbtConfig Rtti(bool? val = null)
1675 {
1676 if (true)
1677 {
1678 AppendArgument(new UnrealToolArgument(
1679 "-rtti",
1680 Value: val?.ToString(),
1681 Setter: '=',
1682 Meta: new(
1684 AllowMultiple: false
1685 )
1686 ));
1687 }
1688 return (UbtConfig) this;
1689 }
1690
1691
1692/// <summary>Enables "include what you use" by default for modules in this target. Changes the default PCH mode for any module in this project to PCHUsageMode.UseExplicitOrSharedPCHs.
1693/// Enables "include what you use" mode.</summary>
1694 public virtual UbtConfig IWYU(bool? val = null)
1695 {
1696 if (true)
1697 {
1698 AppendArgument(new UnrealToolArgument(
1699 "-IWYU",
1700 Value: val?.ToString(),
1701 Setter: '=',
1702 Meta: new(
1704 AllowMultiple: false
1705 )
1706 ));
1707 }
1708 return (UbtConfig) this;
1709 }
1710
1711
1712/// <summary>
1713/// Make static libraries for all engine modules as intermediates for this target.
1714/// </summary>
1715 public virtual UbtConfig Precompile(bool? val = null)
1716 {
1717 if (true)
1718 {
1719 AppendArgument(new UnrealToolArgument(
1720 "-Precompile",
1721 Value: val?.ToString(),
1722 Setter: '=',
1723 Meta: new(
1725 AllowMultiple: false
1726 )
1727 ));
1728 }
1729 return (UbtConfig) this;
1730 }
1731
1732
1733/// <summary>
1734/// Whether to unify C++ code into larger files for faster compilation.
1735/// </summary>
1736 public virtual UbtConfig DisableUnity(bool present = true)
1737 {
1738 if (present)
1739 {
1740 AppendArgument(new UnrealToolArgument(
1741 "-DisableUnity",
1742 Value: null,
1743 Setter: '=',
1744 Meta: new(
1746 AllowMultiple: false
1747 )
1748 ));
1749 }
1750 return (UbtConfig) this;
1751 }
1752
1753
1754/// <summary>
1755/// Whether to force C++ source files to be combined into larger files for faster compilation.
1756/// </summary>
1757 public virtual UbtConfig ForceUnity(bool? val = null)
1758 {
1759 if (true)
1760 {
1761 AppendArgument(new UnrealToolArgument(
1762 "-ForceUnity",
1763 Value: val?.ToString(),
1764 Setter: '=',
1765 Meta: new(
1767 AllowMultiple: false
1768 )
1769 ));
1770 }
1771 return (UbtConfig) this;
1772 }
1773
1774
1775/// <summary>Forces shadow variable warnings to be treated as errors on platforms that support it.
1776/// Forces shadow variable warnings to be treated as errors on platforms that support it.
1777/// MSVC -
1778/// https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4456
1779/// 4456 - declaration of 'LocalVariable' hides previous local declaration
1780/// https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4458
1781/// 4458 - declaration of 'parameter' hides class member
1782/// https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4459
1783/// 4459 - declaration of 'LocalVariable' hides global declaration
1784/// Clang -
1785/// https://clang.llvm.org/docs/DiagnosticsReference.html#wshadow</summary>
1786 public virtual UbtConfig ShadowVariableErrors(WarningLevel? val = null)
1787 {
1788 if (true)
1789 {
1790 AppendArgument(new UnrealToolArgument(
1791 "-ShadowVariableErrors",
1792 Value: val?.ToString(),
1793 Setter: '=',
1794 Meta: new(
1796 AllowMultiple: false
1797 )
1798 ));
1799 }
1800 return (UbtConfig) this;
1801 }
1802
1803
1804/// <summary>
1805/// New Monolithic Graphics drivers have optional "fast calls" replacing various D3d functions
1806/// </summary>
1807 public virtual UbtConfig FastMonoCalls(bool present = true)
1808 {
1809 if (present)
1810 {
1811 AppendArgument(new UnrealToolArgument(
1812 "-FastMonoCalls",
1813 Value: null,
1814 Setter: '=',
1815 Meta: new(
1817 AllowMultiple: false
1818 )
1819 ));
1820 }
1821 return (UbtConfig) this;
1822 }
1823
1824
1825/// <summary>
1826/// New Monolithic Graphics drivers have optional "fast calls" replacing various D3d functions
1827/// </summary>
1828 public virtual UbtConfig NoFastMonoCalls(bool present = true)
1829 {
1830 if (present)
1831 {
1832 AppendArgument(new UnrealToolArgument(
1833 "-NoFastMonoCalls",
1834 Value: null,
1835 Setter: '=',
1836 Meta: new(
1838 AllowMultiple: false
1839 )
1840 ));
1841 }
1842 return (UbtConfig) this;
1843 }
1844
1845
1846/// <summary>
1847/// Whether to stress test the C++ unity build robustness by including all C++ files files in a project from a single unified file.
1848/// </summary>
1849 public virtual UbtConfig StressTestUnity(bool? val = null)
1850 {
1851 if (true)
1852 {
1853 AppendArgument(new UnrealToolArgument(
1854 "-StressTestUnity",
1855 Value: val?.ToString(),
1856 Setter: '=',
1857 Meta: new(
1859 AllowMultiple: false
1860 )
1861 ));
1862 }
1863 return (UbtConfig) this;
1864 }
1865
1866
1867/// <summary>
1868/// Whether to force debug info to be generated.
1869/// </summary>
1870 public virtual UbtConfig ForceDebugInfo(bool? val = null)
1871 {
1872 if (true)
1873 {
1874 AppendArgument(new UnrealToolArgument(
1875 "-ForceDebugInfo",
1876 Value: val?.ToString(),
1877 Setter: '=',
1878 Meta: new(
1880 AllowMultiple: false
1881 )
1882 ));
1883 }
1884 return (UbtConfig) this;
1885 }
1886
1887
1888/// <summary>Whether to globally disable debug info generation; see DebugInfoHeuristics.cs for per-config and per-platform options.
1889/// How much debug info should be generated. See DebugInfoMode enum for more details</summary>
1890 public virtual UbtConfig NoDebugInfo(bool? val = null)
1891 {
1892 if (true)
1893 {
1894 AppendArgument(new UnrealToolArgument(
1895 "-NoDebugInfo",
1896 Value: val?.ToString(),
1897 Setter: '=',
1898 Meta: new(
1900 AllowMultiple: false
1901 )
1902 ));
1903 }
1904 return (UbtConfig) this;
1905 }
1906
1907
1908/// <summary>
1909/// Whether PDB files should be used for Visual C++ builds.
1910/// </summary>
1911 public virtual UbtConfig NoPDB(bool present = true)
1912 {
1913 if (present)
1914 {
1915 AppendArgument(new UnrealToolArgument(
1916 "-NoPDB",
1917 Value: null,
1918 Setter: '=',
1919 Meta: new(
1921 AllowMultiple: false
1922 )
1923 ));
1924 }
1925 return (UbtConfig) this;
1926 }
1927
1928
1929/// <summary>
1930/// Whether PCH files should be used.
1931/// </summary>
1932 public virtual UbtConfig NoPCH(bool present = true)
1933 {
1934 if (present)
1935 {
1936 AppendArgument(new UnrealToolArgument(
1937 "-NoPCH",
1938 Value: null,
1939 Setter: '=',
1940 Meta: new(
1942 AllowMultiple: false
1943 )
1944 ));
1945 }
1946 return (UbtConfig) this;
1947 }
1948
1949
1950/// <summary>
1951/// Whether to just preprocess source files for this target, and skip compilation
1952/// </summary>
1953 public virtual UbtConfig Preprocess(bool? val = null)
1954 {
1955 if (true)
1956 {
1957 AppendArgument(new UnrealToolArgument(
1958 "-Preprocess",
1959 Value: val?.ToString(),
1960 Setter: '=',
1961 Meta: new(
1963 AllowMultiple: false
1964 )
1965 ));
1966 }
1967 return (UbtConfig) this;
1968 }
1969
1970
1971/// <summary>
1972/// Whether to use incremental linking or not. Incremental linking can yield faster iteration times when making small changes.
1973/// Currently disabled by default because it tends to behave a bit buggy on some computers (PDB-related compile errors).
1974/// </summary>
1975 public virtual UbtConfig IncrementalLinking(bool? val = null)
1976 {
1977 if (true)
1978 {
1979 AppendArgument(new UnrealToolArgument(
1980 "-IncrementalLinking",
1981 Value: val?.ToString(),
1982 Setter: '=',
1983 Meta: new(
1985 AllowMultiple: false
1986 )
1987 ));
1988 }
1989 return (UbtConfig) this;
1990 }
1991
1992
1993/// <summary>
1994/// Whether to use incremental linking or not. Incremental linking can yield faster iteration times when making small changes.
1995/// Currently disabled by default because it tends to behave a bit buggy on some computers (PDB-related compile errors).
1996/// </summary>
1997 public virtual UbtConfig NoIncrementalLinking(bool present = true)
1998 {
1999 if (present)
2000 {
2001 AppendArgument(new UnrealToolArgument(
2002 "-NoIncrementalLinking",
2003 Value: null,
2004 Setter: '=',
2005 Meta: new(
2007 AllowMultiple: false
2008 )
2009 ));
2010 }
2011 return (UbtConfig) this;
2012 }
2013
2014
2015/// <summary>
2016/// Whether to allow the use of link time code generation (LTCG).
2017/// </summary>
2018 public virtual UbtConfig LTCG(bool? val = null)
2019 {
2020 if (true)
2021 {
2022 AppendArgument(new UnrealToolArgument(
2023 "-LTCG",
2024 Value: val?.ToString(),
2025 Setter: '=',
2026 Meta: new(
2028 AllowMultiple: false
2029 )
2030 ));
2031 }
2032 return (UbtConfig) this;
2033 }
2034
2035
2036/// <summary>
2037/// Whether to enable Profile Guided Optimization (PGO) instrumentation in this build.
2038/// </summary>
2039 public virtual UbtConfig PGOProfile(bool present = true)
2040 {
2041 if (present)
2042 {
2043 AppendArgument(new UnrealToolArgument(
2044 "-PGOProfile",
2045 Value: null,
2046 Setter: '=',
2047 Meta: new(
2049 AllowMultiple: false
2050 )
2051 ));
2052 }
2053 return (UbtConfig) this;
2054 }
2055
2056
2057/// <summary>
2058/// Whether to optimize this build with Profile Guided Optimization (PGO).
2059/// </summary>
2060 public virtual UbtConfig PGOOptimize(bool present = true)
2061 {
2062 if (present)
2063 {
2064 AppendArgument(new UnrealToolArgument(
2065 "-PGOOptimize",
2066 Value: null,
2067 Setter: '=',
2068 Meta: new(
2070 AllowMultiple: false
2071 )
2072 ));
2073 }
2074 return (UbtConfig) this;
2075 }
2076
2077
2078/// <summary>
2079/// Enables "Shared PCHs", a feature which significantly speeds up compile times by attempting to
2080/// share certain PCH files between modules that UBT detects is including those PCH's header files.
2081/// </summary>
2082 public virtual UbtConfig NoSharedPCH(bool present = true)
2083 {
2084 if (present)
2085 {
2086 AppendArgument(new UnrealToolArgument(
2087 "-NoSharedPCH",
2088 Value: null,
2089 Setter: '=',
2090 Meta: new(
2092 AllowMultiple: false
2093 )
2094 ));
2095 }
2096 return (UbtConfig) this;
2097 }
2098
2099
2100/// <summary>
2101/// Whether to use the :FASTLINK option when building with /DEBUG to create local PDBs on Windows. Fast, but currently seems to have problems finding symbols in the debugger.
2102/// </summary>
2103 public virtual UbtConfig FastPDB(bool? val = null)
2104 {
2105 if (true)
2106 {
2107 AppendArgument(new UnrealToolArgument(
2108 "-FastPDB",
2109 Value: val?.ToString(),
2110 Setter: '=',
2111 Meta: new(
2113 AllowMultiple: false
2114 )
2115 ));
2116 }
2117 return (UbtConfig) this;
2118 }
2119
2120
2121/// <summary>
2122/// Outputs a map file as part of the build.
2123/// </summary>
2124 public virtual UbtConfig MapFile(bool? val = null)
2125 {
2126 if (true)
2127 {
2128 AppendArgument(new UnrealToolArgument(
2129 "-MapFile",
2130 Value: val?.ToString(),
2131 Setter: '=',
2132 Meta: new(
2134 AllowMultiple: false
2135 )
2136 ));
2137 }
2138 return (UbtConfig) this;
2139 }
2140
2141
2142/// <summary>
2143/// Bundle version for Mac apps.
2144/// </summary>
2145 public virtual UbtConfig BundleVersion(object val = null)
2146 {
2147 if (true)
2148 {
2149 AppendArgument(new UnrealToolArgument(
2150 "-BundleVersion",
2151 Value: val?.ToString(),
2152 Setter: '=',
2153 Meta: new(
2155 AllowMultiple: false
2156 )
2157 ));
2158 }
2159 return (UbtConfig) this;
2160 }
2161
2162
2163/// <summary>
2164/// Whether to deploy the executable after compilation on platforms that require deployment.
2165/// </summary>
2166 public virtual UbtConfig Deploy(bool? val = null)
2167 {
2168 if (true)
2169 {
2170 AppendArgument(new UnrealToolArgument(
2171 "-Deploy",
2172 Value: val?.ToString(),
2173 Setter: '=',
2174 Meta: new(
2176 AllowMultiple: false
2177 )
2178 ));
2179 }
2180 return (UbtConfig) this;
2181 }
2182
2183
2184/// <summary>
2185/// Whether to force skipping deployment for platforms that require deployment by default.
2186/// </summary>
2187 public virtual UbtConfig SkipDeploy(bool? val = null)
2188 {
2189 if (true)
2190 {
2191 AppendArgument(new UnrealToolArgument(
2192 "-SkipDeploy",
2193 Value: val?.ToString(),
2194 Setter: '=',
2195 Meta: new(
2197 AllowMultiple: false
2198 )
2199 ));
2200 }
2201 return (UbtConfig) this;
2202 }
2203
2204
2205/// <summary>
2206/// Whether to disable linking for this target.
2207/// </summary>
2208 public virtual UbtConfig NoLink(bool? val = null)
2209 {
2210 if (true)
2211 {
2212 AppendArgument(new UnrealToolArgument(
2213 "-NoLink",
2214 Value: val?.ToString(),
2215 Setter: '=',
2216 Meta: new(
2218 AllowMultiple: false
2219 )
2220 ));
2221 }
2222 return (UbtConfig) this;
2223 }
2224
2225
2226/// <summary>Indicates that this is a formal build, intended for distribution. This flag is automatically set to true when Build.version has a changelist set.
2227/// The only behavior currently bound to this flag is to compile the default resource file separately for each binary so that the OriginalFilename field is set correctly.
2228/// By default, we only compile the resource once to reduce build times.
2229/// Indicates that this is a formal build, intended for distribution. This flag is automatically set to true when Build.version has a changelist set and is a promoted build.
2230/// The only behavior currently bound to this flag is to compile the default resource file separately for each binary so that the OriginalFilename field is set correctly.
2231/// By default, we only compile the resource once to reduce build times.</summary>
2232 public virtual UbtConfig Formal(bool? val = null)
2233 {
2234 if (true)
2235 {
2236 AppendArgument(new UnrealToolArgument(
2237 "-Formal",
2238 Value: val?.ToString(),
2239 Setter: '=',
2240 Meta: new(
2242 AllowMultiple: false
2243 )
2244 ));
2245 }
2246 return (UbtConfig) this;
2247 }
2248
2249
2250/// <summary>
2251/// Whether to clean Builds directory on a remote Mac before building.
2252/// </summary>
2253 public virtual UbtConfig FlushMac(bool? val = null)
2254 {
2255 if (true)
2256 {
2257 AppendArgument(new UnrealToolArgument(
2258 "-FlushMac",
2259 Value: val?.ToString(),
2260 Setter: '=',
2261 Meta: new(
2263 AllowMultiple: false
2264 )
2265 ));
2266 }
2267 return (UbtConfig) this;
2268 }
2269
2270
2271/// <summary>
2272/// Whether to write detailed timing info from the compiler and linker.
2273/// </summary>
2274 public virtual UbtConfig Timing(bool? val = null)
2275 {
2276 if (true)
2277 {
2278 AppendArgument(new UnrealToolArgument(
2279 "-Timing",
2280 Value: val?.ToString(),
2281 Setter: '=',
2282 Meta: new(
2284 AllowMultiple: false
2285 )
2286 ));
2287 }
2288 return (UbtConfig) this;
2289 }
2290
2291
2292/// <summary>
2293/// Whether to parse timing data into a tracing file compatible with chrome://tracing.
2294/// </summary>
2295 public virtual UbtConfig Tracing(bool? val = null)
2296 {
2297 if (true)
2298 {
2299 AppendArgument(new UnrealToolArgument(
2300 "-Tracing",
2301 Value: val?.ToString(),
2302 Setter: '=',
2303 Meta: new(
2305 AllowMultiple: false
2306 )
2307 ));
2308 }
2309 return (UbtConfig) this;
2310 }
2311
2312
2313/// <summary>
2314/// Whether to expose all symbols as public by default on POSIX platforms
2315/// </summary>
2316 public virtual UbtConfig PublicSymbolsByDefault(bool? val = null)
2317 {
2318 if (true)
2319 {
2320 AppendArgument(new UnrealToolArgument(
2321 "-PublicSymbolsByDefault",
2322 Value: val?.ToString(),
2323 Setter: '=',
2324 Meta: new(
2326 AllowMultiple: false
2327 )
2328 ));
2329 }
2330 return (UbtConfig) this;
2331 }
2332
2333
2334/// <summary>
2335/// Allows overriding the toolchain to be created for this target. This must match the name of a class declared in the UnrealBuildTool assembly.
2336/// </summary>
2337 public virtual UbtConfig ToolChain(object val = null)
2338 {
2339 if (true)
2340 {
2341 AppendArgument(new UnrealToolArgument(
2342 "-ToolChain",
2343 Value: val?.ToString(),
2344 Setter: '=',
2345 Meta: new(
2347 AllowMultiple: false
2348 )
2349 ));
2350 }
2351 return (UbtConfig) this;
2352 }
2353
2354
2355/// <summary>Which C++ stanard to use for compiling this target
2356/// Which C++ standard to use for compiling this target (for non-engine modules)</summary>
2357 public virtual UbtConfig CppStd(CppStandardVersion? val = null)
2358 {
2359 if (true)
2360 {
2361 AppendArgument(new UnrealToolArgument(
2362 "-CppStd",
2363 Value: val?.ToString(),
2364 Setter: '=',
2365 Meta: new(
2367 AllowMultiple: false
2368 )
2369 ));
2370 }
2371 return (UbtConfig) this;
2372 }
2373
2374
2375/// <summary>
2376/// Do not allow manifest changes when building this target. Used to cause earlier errors when building multiple targets with a shared build environment.
2377/// </summary>
2378 public virtual UbtConfig NoManifestChanges(bool? val = null)
2379 {
2380 if (true)
2381 {
2382 AppendArgument(new UnrealToolArgument(
2383 "-NoManifestChanges",
2384 Value: val?.ToString(),
2385 Setter: '=',
2386 Meta: new(
2388 AllowMultiple: false
2389 )
2390 ));
2391 }
2392 return (UbtConfig) this;
2393 }
2394
2395
2396/// <summary>
2397/// The build version string
2398/// </summary>
2399 public virtual UbtConfig BuildVersion(object val = null)
2400 {
2401 if (true)
2402 {
2403 AppendArgument(new UnrealToolArgument(
2404 "-BuildVersion",
2405 Value: val?.ToString(),
2406 Setter: '=',
2407 Meta: new(
2409 AllowMultiple: false
2410 )
2411 ));
2412 }
2413 return (UbtConfig) this;
2414 }
2415
2416
2417/// <summary>
2418/// Backing storage for the LinkType property.
2419/// </summary>
2420 public virtual UbtConfig Monolithic(bool present = true)
2421 {
2422 if (present)
2423 {
2424 AppendArgument(new UnrealToolArgument(
2425 "-Monolithic",
2426 Value: null,
2427 Setter: '=',
2428 Meta: new(
2430 AllowMultiple: false
2431 )
2432 ));
2433 }
2434 return (UbtConfig) this;
2435 }
2436
2437
2438/// <summary>
2439/// Backing storage for the LinkType property.
2440/// </summary>
2441 public virtual UbtConfig Modular(bool present = true)
2442 {
2443 if (present)
2444 {
2445 AppendArgument(new UnrealToolArgument(
2446 "-Modular",
2447 Value: null,
2448 Setter: '=',
2449 Meta: new(
2451 AllowMultiple: false
2452 )
2453 ));
2454 }
2455 return (UbtConfig) this;
2456 }
2457
2458
2459/// <summary>
2460/// Macros to define globally across the whole target.
2461/// </summary>
2462 public virtual UbtConfig Define(params object[] values)
2463 {
2464 if (true)
2465 {
2466 if (values != null)
2467 foreach (var val in values)
2468 {
2469 AppendArgument(new UnrealToolArgument(
2470 "-Define",
2471 Value: val.ToString(),
2472 Setter: ':',
2473 Meta: new(
2475 AllowMultiple: true
2476 )
2477 ));
2478 }
2479 }
2480 return (UbtConfig) this;
2481 }
2482
2483
2484/// <summary>
2485/// Macros to define across all macros in the project.
2486/// </summary>
2487 public virtual UbtConfig ProjectDefine(params object[] values)
2488 {
2489 if (true)
2490 {
2491 if (values != null)
2492 foreach (var val in values)
2493 {
2494 AppendArgument(new UnrealToolArgument(
2495 "-ProjectDefine",
2496 Value: val.ToString(),
2497 Setter: ':',
2498 Meta: new(
2500 AllowMultiple: true
2501 )
2502 ));
2503 }
2504 }
2505 return (UbtConfig) this;
2506 }
2507
2508
2509/// <summary>
2510/// Path to a manifest to output for this target
2511/// </summary>
2512 public virtual UbtConfig Manifest(params object[] values)
2513 {
2514 if (true)
2515 {
2516 if (values != null)
2517 foreach (var val in values)
2518 {
2519 AppendArgument(new UnrealToolArgument(
2520 "-Manifest",
2521 Value: val.ToString(),
2522 Setter: '=',
2523 Meta: new(
2525 AllowMultiple: true
2526 )
2527 ));
2528 }
2529 }
2530 return (UbtConfig) this;
2531 }
2532
2533
2534/// <summary>
2535/// Path to a list of dependencies for this target, when precompiling
2536/// </summary>
2537 public virtual UbtConfig DependencyList(params object[] values)
2538 {
2539 if (true)
2540 {
2541 if (values != null)
2542 foreach (var val in values)
2543 {
2544 AppendArgument(new UnrealToolArgument(
2545 "-DependencyList",
2546 Value: val.ToString(),
2547 Setter: '=',
2548 Meta: new(
2550 AllowMultiple: true
2551 )
2552 ));
2553 }
2554 }
2555 return (UbtConfig) this;
2556 }
2557
2558
2559/// <summary>
2560/// Backing storage for the BuildEnvironment property
2561/// </summary>
2562 public virtual UbtConfig SharedBuildEnvironment(bool present = true)
2563 {
2564 if (present)
2565 {
2566 AppendArgument(new UnrealToolArgument(
2567 "-SharedBuildEnvironment",
2568 Value: null,
2569 Setter: '=',
2570 Meta: new(
2572 AllowMultiple: false
2573 )
2574 ));
2575 }
2576 return (UbtConfig) this;
2577 }
2578
2579
2580/// <summary>
2581/// Backing storage for the BuildEnvironment property
2582/// </summary>
2583 public virtual UbtConfig UniqueBuildEnvironment(bool present = true)
2584 {
2585 if (present)
2586 {
2587 AppendArgument(new UnrealToolArgument(
2588 "-UniqueBuildEnvironment",
2589 Value: null,
2590 Setter: '=',
2591 Meta: new(
2593 AllowMultiple: false
2594 )
2595 ));
2596 }
2597 return (UbtConfig) this;
2598 }
2599
2600
2601/// <summary>
2602/// Whether to ignore violations to the shared build environment (eg. editor targets modifying definitions)
2603/// </summary>
2604 public virtual UbtConfig OverrideBuildEnvironment(bool? val = null)
2605 {
2606 if (true)
2607 {
2608 AppendArgument(new UnrealToolArgument(
2609 "-OverrideBuildEnvironment",
2610 Value: val?.ToString(),
2611 Setter: '=',
2612 Meta: new(
2614 AllowMultiple: false
2615 )
2616 ));
2617 }
2618 return (UbtConfig) this;
2619 }
2620
2621
2622/// <summary>
2623/// Additional arguments to pass to the compiler
2624/// </summary>
2625 public virtual UbtConfig CompilerArguments(object val = null)
2626 {
2627 if (true)
2628 {
2629 AppendArgument(new UnrealToolArgument(
2630 "-CompilerArguments",
2631 Value: val?.ToString(),
2632 Setter: '=',
2633 Meta: new(
2635 AllowMultiple: false
2636 )
2637 ));
2638 }
2639 return (UbtConfig) this;
2640 }
2641
2642
2643/// <summary>
2644/// Additional arguments to pass to the linker
2645/// </summary>
2646 public virtual UbtConfig LinkerArguments(object val = null)
2647 {
2648 if (true)
2649 {
2650 AppendArgument(new UnrealToolArgument(
2651 "-LinkerArguments",
2652 Value: val?.ToString(),
2653 Setter: '=',
2654 Meta: new(
2656 AllowMultiple: false
2657 )
2658 ));
2659 }
2660 return (UbtConfig) this;
2661 }
2662
2663
2664/// <summary>
2665/// Lists Architectures that you want to build
2666/// </summary>
2667 public virtual UbtConfig Architectures(params object[] values)
2668 {
2669 if (true)
2670 {
2671 AppendArgument(new UnrealToolArgument(
2672 "-Architectures",
2673 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
2674 Setter: '=',
2675 Meta: new(
2676 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1,
2677 AllowMultiple: true
2678 )
2679 ));
2680 }
2681 return (UbtConfig) this;
2682 }
2683
2684
2685/// <summary>
2686/// Lists GPU Architectures that you want to build (mostly used for mobile etc.)
2687/// </summary>
2688 public virtual UbtConfig GPUArchitectures(params object[] values)
2689 {
2690 if (true)
2691 {
2692 AppendArgument(new UnrealToolArgument(
2693 "-GPUArchitectures",
2694 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
2695 Setter: '=',
2696 Meta: new(
2697 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1,
2698 AllowMultiple: true
2699 )
2700 ));
2701 }
2702 return (UbtConfig) this;
2703 }
2704
2705
2706/// <summary>
2707/// Ignore AppBundle (AAB) generation setting if "-ForceAPKGeneration" specified
2708/// </summary>
2709 public virtual UbtConfig ForceAPKGeneration(bool present = true)
2710 {
2711 if (present)
2712 {
2713 AppendArgument(new UnrealToolArgument(
2714 "-ForceAPKGeneration",
2715 Value: null,
2716 Setter: '=',
2717 Meta: new(
2719 AllowMultiple: false
2720 )
2721 ));
2722 }
2723 return (UbtConfig) this;
2724 }
2725
2726
2727/// <summary>Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a specific version at UBT startup.
2728/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.</summary>
2729 public virtual UbtConfig _2015(bool present = true)
2730 {
2731 if (present)
2732 {
2733 AppendArgument(new UnrealToolArgument(
2734 "-2015",
2735 Value: null,
2736 Setter: '=',
2737 Meta: new(
2738 Compatibility: UnrealCompatibility.UE_4,
2739 AllowMultiple: false
2740 )
2741 ));
2742 }
2743 return (UbtConfig) this;
2744 }
2745
2746
2747/// <summary>Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a specific version at UBT startup.
2748/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.</summary>
2749 public virtual UbtConfig _2017(WindowsCompiler? val = null)
2750 {
2751 if (true)
2752 {
2753 AppendArgument(new UnrealToolArgument(
2754 "-2017",
2755 Value: val?.ToString(),
2756 Setter: '=',
2757 Meta: new(
2758 Compatibility: UnrealCompatibility.UE_4,
2759 AllowMultiple: false
2760 )
2761 ));
2762 }
2763 return (UbtConfig) this;
2764 }
2765
2766
2767/// <summary>Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a specific version at UBT startup.
2768/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.</summary>
2769 public virtual UbtConfig _2019(WindowsCompiler? val = null)
2770 {
2771 if (true)
2772 {
2773 AppendArgument(new UnrealToolArgument(
2774 "-2019",
2775 Value: val?.ToString(),
2776 Setter: '=',
2777 Meta: new(
2778 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
2779 AllowMultiple: false
2780 )
2781 ));
2782 }
2783 return (UbtConfig) this;
2784 }
2785
2786
2787/// <summary>Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a specific version at UBT startup.
2788/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.</summary>
2789 public virtual UbtConfig _2022(WindowsCompiler? val = null)
2790 {
2791 if (true)
2792 {
2793 AppendArgument(new UnrealToolArgument(
2794 "-2022",
2795 Value: val?.ToString(),
2796 Setter: '=',
2797 Meta: new(
2799 AllowMultiple: false
2800 )
2801 ));
2802 }
2803 return (UbtConfig) this;
2804 }
2805
2806
2807/// <summary>Whether to strip iOS symbols or not (implied by Shipping config).
2808/// Whether to strip symbols or not (implied by Shipping config).</summary>
2809 public virtual UbtConfig Stripsymbols(bool present = true)
2810 {
2811 if (present)
2812 {
2813 AppendArgument(new UnrealToolArgument(
2814 "-stripsymbols",
2815 Value: null,
2816 Setter: '=',
2817 Meta: new(
2819 AllowMultiple: false
2820 )
2821 ));
2822 }
2823 return (UbtConfig) this;
2824 }
2825
2826
2827/// <summary>
2828/// If true, then a stub IPA will be generated when compiling is done (minimal files needed for a valid IPA).
2829/// </summary>
2830 public virtual UbtConfig CreateStub(bool present = true)
2831 {
2832 if (present)
2833 {
2834 AppendArgument(new UnrealToolArgument(
2835 "-CreateStub",
2836 Value: null,
2837 Setter: '=',
2838 Meta: new(
2840 AllowMultiple: false
2841 )
2842 ));
2843 }
2844 return (UbtConfig) this;
2845 }
2846
2847
2848/// <summary>
2849/// Don't generate crashlytics data
2850/// </summary>
2851 public virtual UbtConfig Alwaysgeneratedsym(bool present = true)
2852 {
2853 if (present)
2854 {
2855 AppendArgument(new UnrealToolArgument(
2856 "-alwaysgeneratedsym",
2857 Value: null,
2858 Setter: '=',
2859 Meta: new(
2861 AllowMultiple: false
2862 )
2863 ));
2864 }
2865 return (UbtConfig) this;
2866 }
2867
2868
2869/// <summary>
2870/// Don't generate crashlytics data
2871/// </summary>
2872 public virtual UbtConfig Skipcrashlytics(bool? val = null)
2873 {
2874 if (true)
2875 {
2876 AppendArgument(new UnrealToolArgument(
2877 "-skipcrashlytics",
2878 Value: val?.ToString(),
2879 Setter: '=',
2880 Meta: new(
2882 AllowMultiple: false
2883 )
2884 ));
2885 }
2886 return (UbtConfig) this;
2887 }
2888
2889
2890/// <summary>Mark the build for distribution
2891/// If -distribution was passed on the commandline, this build is for distribution.</summary>
2892 public virtual UbtConfig Distribution(bool? val = null)
2893 {
2894 if (true)
2895 {
2896 AppendArgument(new UnrealToolArgument(
2897 "-distribution",
2898 Value: val?.ToString(),
2899 Setter: '=',
2900 Meta: new(
2902 AllowMultiple: false
2903 )
2904 ));
2905 }
2906 return (UbtConfig) this;
2907 }
2908
2909
2910/// <summary>
2911/// Manual override for the provision to use. Should be a full path.
2912/// </summary>
2913 public virtual UbtConfig ImportProvision(object val = null)
2914 {
2915 if (true)
2916 {
2917 AppendArgument(new UnrealToolArgument(
2918 "-ImportProvision",
2919 Value: val?.ToString(),
2920 Setter: '=',
2921 Meta: new(
2923 AllowMultiple: false
2924 )
2925 ));
2926 }
2927 return (UbtConfig) this;
2928 }
2929
2930
2931/// <summary>
2932/// Imports the given certificate (inc private key) into a temporary keychain before signing.
2933/// </summary>
2934 public virtual UbtConfig ImportCertificate(object val = null)
2935 {
2936 if (true)
2937 {
2938 AppendArgument(new UnrealToolArgument(
2939 "-ImportCertificate",
2940 Value: val?.ToString(),
2941 Setter: '=',
2942 Meta: new(
2944 AllowMultiple: false
2945 )
2946 ));
2947 }
2948 return (UbtConfig) this;
2949 }
2950
2951
2952/// <summary>
2953/// Password for the imported certificate
2954/// </summary>
2955 public virtual UbtConfig ImportCertificatePassword(object val = null)
2956 {
2957 if (true)
2958 {
2959 AppendArgument(new UnrealToolArgument(
2960 "-ImportCertificatePassword",
2961 Value: val?.ToString(),
2962 Setter: '=',
2963 Meta: new(
2965 AllowMultiple: false
2966 )
2967 ));
2968 }
2969 return (UbtConfig) this;
2970 }
2971
2972
2973/// <summary>
2974/// Whether to build the iOS project as a framework.
2975/// </summary>
2976 public virtual UbtConfig BuildAsFramework(bool? val = null)
2977 {
2978 if (true)
2979 {
2980 AppendArgument(new UnrealToolArgument(
2981 "-build-as-framework",
2982 Value: val?.ToString(),
2983 Setter: '=',
2984 Meta: new(
2986 AllowMultiple: false
2987 )
2988 ));
2989 }
2990 return (UbtConfig) this;
2991 }
2992
2993
2994/// <summary>
2995/// Whether to generate a dSYM file or not.
2996/// </summary>
2997 public virtual UbtConfig Generatedsymfile(bool? val = null)
2998 {
2999 if (true)
3000 {
3001 AppendArgument(new UnrealToolArgument(
3002 "-generatedsymfile",
3003 Value: val?.ToString(),
3004 Setter: '=',
3005 Meta: new(
3007 AllowMultiple: false
3008 )
3009 ));
3010 }
3011 return (UbtConfig) this;
3012 }
3013
3014
3015/// <summary>
3016/// Whether to generate a dSYM bundle (as opposed to single file dSYM)
3017/// </summary>
3018 public virtual UbtConfig Generatedsymbundle(bool? val = null)
3019 {
3020 if (true)
3021 {
3022 AppendArgument(new UnrealToolArgument(
3023 "-generatedsymbundle",
3024 Value: val?.ToString(),
3025 Setter: '=',
3026 Meta: new(
3028 AllowMultiple: false
3029 )
3030 ));
3031 }
3032 return (UbtConfig) this;
3033 }
3034
3035
3036/// <summary>Enables address sanitizer (ASan)
3037/// Enables address sanitizer (ASan).
3038/// Enables address sanitizer (ASan). Only supported for Visual Studio 2019 16.7.0 and up.</summary>
3039 public virtual UbtConfig EnableASan(bool? val = null)
3040 {
3041 if (true)
3042 {
3043 AppendArgument(new UnrealToolArgument(
3044 "-EnableASan",
3045 Value: val?.ToString(),
3046 Setter: '=',
3047 Meta: new(
3049 AllowMultiple: false
3050 )
3051 ));
3052 }
3053 return (UbtConfig) this;
3054 }
3055
3056
3057/// <summary>Enables thread sanitizer (TSan)
3058/// Enables thread sanitizer (TSan).</summary>
3059 public virtual UbtConfig EnableTSan(bool? val = null)
3060 {
3061 if (true)
3062 {
3063 AppendArgument(new UnrealToolArgument(
3064 "-EnableTSan",
3065 Value: val?.ToString(),
3066 Setter: '=',
3067 Meta: new(
3069 AllowMultiple: false
3070 )
3071 ));
3072 }
3073 return (UbtConfig) this;
3074 }
3075
3076
3077/// <summary>Enables undefined behavior sanitizer (UBSan)
3078/// Enables undefined behavior sanitizer (UBSan).</summary>
3079 public virtual UbtConfig EnableUBSan(bool? val = null)
3080 {
3081 if (true)
3082 {
3083 AppendArgument(new UnrealToolArgument(
3084 "-EnableUBSan",
3085 Value: val?.ToString(),
3086 Setter: '=',
3087 Meta: new(
3089 AllowMultiple: false
3090 )
3091 ));
3092 }
3093 return (UbtConfig) this;
3094 }
3095
3096
3097/// <summary>
3098/// Enables memory sanitizer (MSan)
3099/// </summary>
3100 public virtual UbtConfig EnableMSan(bool? val = null)
3101 {
3102 if (true)
3103 {
3104 AppendArgument(new UnrealToolArgument(
3105 "-EnableMSan",
3106 Value: val?.ToString(),
3107 Setter: '=',
3108 Meta: new(
3110 AllowMultiple: false
3111 )
3112 ));
3113 }
3114 return (UbtConfig) this;
3115 }
3116
3117
3118/// <summary>Enables "thin" LTO
3119/// When Link Time Code Generation (LTCG) is enabled, whether to
3120/// prefer using the lighter weight version on supported platforms.</summary>
3121 public virtual UbtConfig ThinLTO(bool? val = null)
3122 {
3123 if (true)
3124 {
3125 AppendArgument(new UnrealToolArgument(
3126 "-ThinLTO",
3127 Value: val?.ToString(),
3128 Setter: '=',
3129 Meta: new(
3131 AllowMultiple: false
3132 )
3133 ));
3134 }
3135 return (UbtConfig) this;
3136 }
3137
3138
3139/// <summary>
3140/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.
3141/// </summary>
3142 public virtual UbtConfig Compiler(WindowsCompiler? val = null)
3143 {
3144 if (true)
3145 {
3146 AppendArgument(new UnrealToolArgument(
3147 "-Compiler",
3148 Value: val?.ToString(),
3149 Setter: '=',
3150 Meta: new(
3152 AllowMultiple: false
3153 )
3154 ));
3155 }
3156 return (UbtConfig) this;
3157 }
3158
3159
3160/// <summary>The specific toolchain version to use. This may be a specific version number (for example, "14.13.26128"), the string "Latest" to select the newest available version, or
3161/// the string "Preview" to select the newest available preview version. By default, and if it is available, we use the toolchain version indicated by
3162/// WindowsPlatform.DefaultToolChainVersion (otherwise, we use the latest version).
3163/// The specific compiler version to use. This may be a specific version number (for example, "14.13.26128"), the string "Latest" to select the newest available version, or
3164/// the string "Preview" to select the newest available preview version. By default, and if it is available, we use the toolchain version indicated by
3165/// WindowsPlatform.DefaultToolChainVersion (otherwise, we use the latest version).</summary>
3166 public virtual UbtConfig CompilerVersion(object val = null)
3167 {
3168 if (true)
3169 {
3170 AppendArgument(new UnrealToolArgument(
3171 "-CompilerVersion",
3172 Value: val?.ToString(),
3173 Setter: '=',
3174 Meta: new(
3176 AllowMultiple: false
3177 )
3178 ));
3179 }
3180 return (UbtConfig) this;
3181 }
3182
3183
3184/// <summary>The static analyzer to use.
3185/// Whether static code analysis should be enabled.</summary>
3187 {
3188 if (true)
3189 {
3190 AppendArgument(new UnrealToolArgument(
3191 "-StaticAnalyzer",
3192 Value: val?.ToString(),
3193 Setter: '=',
3194 Meta: new(
3196 AllowMultiple: false
3197 )
3198 ));
3199 }
3200 return (UbtConfig) this;
3201 }
3202
3203
3204/// <summary>
3205/// Whether we should export a file containing .obj to source file mappings.
3206/// </summary>
3207 public virtual UbtConfig ObjSrcMap(object val = null)
3208 {
3209 if (true)
3210 {
3211 AppendArgument(new UnrealToolArgument(
3212 "-ObjSrcMap",
3213 Value: val?.ToString(),
3214 Setter: '=',
3215 Meta: new(
3217 AllowMultiple: false
3218 )
3219 ));
3220 }
3221 return (UbtConfig) this;
3222 }
3223
3224
3225/// <summary>Enables strict standard conformance mode (/permissive-) in VS2017+.
3226/// Enables strict standard conformance mode (/permissive-).</summary>
3227 public virtual UbtConfig Strict(bool? val = null)
3228 {
3229 if (true)
3230 {
3231 AppendArgument(new UnrealToolArgument(
3232 "-Strict",
3233 Value: val?.ToString(),
3234 Setter: '=',
3235 Meta: new(
3237 AllowMultiple: false
3238 )
3239 ));
3240 }
3241 return (UbtConfig) this;
3242 }
3243
3244
3245/// <summary>
3246/// Print out files that are included by each source file
3247/// </summary>
3248 public virtual UbtConfig ShowIncludes(bool? val = null)
3249 {
3250 if (true)
3251 {
3252 AppendArgument(new UnrealToolArgument(
3253 "-ShowIncludes",
3254 Value: val?.ToString(),
3255 Setter: '=',
3256 Meta: new(
3258 AllowMultiple: false
3259 )
3260 ));
3261 }
3262 return (UbtConfig) this;
3263 }
3264
3265
3266/// <summary>
3267/// Platforms to generate project files for
3268/// </summary>
3269 public virtual UbtConfig Platforms(params object[] values)
3270 {
3271 if (true)
3272 {
3273 AppendArgument(new UnrealToolArgument(
3274 "-Platforms",
3275 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
3276 Setter: '=',
3277 Meta: new(
3279 AllowMultiple: true
3280 )
3281 ));
3282 }
3283 return (UbtConfig) this;
3284 }
3285
3286
3287/// <summary>
3288/// Target types to generate project files for
3289/// </summary>
3290 public virtual UbtConfig TargetTypes(params TargetType[] values)
3291 {
3292 if (true)
3293 {
3294 AppendArgument(new UnrealToolArgument(
3295 "-TargetTypes",
3296 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
3297 Setter: '=',
3298 Meta: new(
3300 AllowMultiple: true
3301 )
3302 ));
3303 }
3304 return (UbtConfig) this;
3305 }
3306
3307
3308/// <summary>
3309/// Target configurations to generate project files for
3310/// </summary>
3312 {
3313 if (true)
3314 {
3315 AppendArgument(new UnrealToolArgument(
3316 "-TargetConfigurations",
3317 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
3318 Setter: '=',
3319 Meta: new(
3321 AllowMultiple: true
3322 )
3323 ));
3324 }
3325 return (UbtConfig) this;
3326 }
3327
3328
3329/// <summary>
3330/// Projects to generate project files for
3331/// </summary>
3332 public virtual UbtConfig ProjectNames(params object[] values)
3333 {
3334 if (true)
3335 {
3336 AppendArgument(new UnrealToolArgument(
3337 "-ProjectNames",
3338 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
3339 Setter: '=',
3340 Meta: new(
3342 AllowMultiple: true
3343 )
3344 ));
3345 }
3346 return (UbtConfig) this;
3347 }
3348
3349
3350/// <summary>
3351/// Should format JSON files in human readable form, or use packed one without indents
3352/// </summary>
3353 public virtual UbtConfig Minimize(bool present = true)
3354 {
3355 if (present)
3356 {
3357 AppendArgument(new UnrealToolArgument(
3358 "-Minimize",
3359 Value: null,
3360 Setter: '=',
3361 Meta: new(
3363 AllowMultiple: false
3364 )
3365 ));
3366 }
3367 return (UbtConfig) this;
3368 }
3369
3370
3371/// <summary>Log all attempts to write to the specified file
3372/// Trace writes requested to the specified file</summary>
3373 public virtual UbtConfig TraceWrites(object val = null)
3374 {
3375 if (true)
3376 {
3377 AppendArgument(new UnrealToolArgument(
3378 "-TraceWrites",
3379 Value: val?.ToString(),
3380 Setter: '=',
3381 Meta: new(
3382 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3383 AllowMultiple: false
3384 )
3385 ));
3386 }
3387 return (UbtConfig) this;
3388 }
3389
3390
3391/// <summary>The mode to execute
3392/// Generate project files for Eddie</summary>
3393 public virtual UbtConfig EddieProjectFiles(bool present = true)
3394 {
3395 if (present)
3396 {
3397 AppendArgument(new UnrealToolArgument(
3398 "-EddieProjectFiles",
3399 Value: null,
3400 Setter: '=',
3401 Meta: new(
3402 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3403 AllowMultiple: false
3404 )
3405 ));
3406 }
3407 return (UbtConfig) this;
3408 }
3409
3410
3411/// <summary>
3412/// Whether debug info should be written to the console.
3413/// </summary>
3414 public virtual UbtConfig PrintDebugInfo(bool present = true)
3415 {
3416 if (present)
3417 {
3418 AppendArgument(new UnrealToolArgument(
3419 "-PrintDebugInfo",
3420 Value: null,
3421 Setter: '=',
3422 Meta: new(
3423 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3424 AllowMultiple: false
3425 )
3426 ));
3427 }
3428 return (UbtConfig) this;
3429 }
3430
3431
3432/// <summary>Whether SN-DBS may be used.
3433/// Whether SN-DBS may be used if available, default is true.</summary>
3434 public virtual UbtConfig NoSNDBS(bool present = true)
3435 {
3436 if (present)
3437 {
3438 AppendArgument(new UnrealToolArgument(
3439 "-NoSNDBS",
3440 Value: null,
3441 Setter: '=',
3442 Meta: new(
3443 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3444 AllowMultiple: false
3445 )
3446 ));
3447 }
3448 return (UbtConfig) this;
3449 }
3450
3451
3452/// <summary>
3453/// Whether to force compiling rules assemblies, regardless of whether they are valid
3454/// </summary>
3455 public virtual UbtConfig ForceRulesCompile(bool? val = null)
3456 {
3457 if (true)
3458 {
3459 AppendArgument(new UnrealToolArgument(
3460 "-ForceRulesCompile",
3461 Value: val?.ToString(),
3462 Setter: '=',
3463 Meta: new(
3464 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3465 AllowMultiple: false
3466 )
3467 ));
3468 }
3469 return (UbtConfig) this;
3470 }
3471
3472
3473/// <summary>
3474/// Lists of files to compile
3475/// </summary>
3476 public virtual UbtConfig FileList(params object[] values)
3477 {
3478 if (true)
3479 {
3480 if (values != null)
3481 foreach (var val in values)
3482 {
3483 AppendArgument(new UnrealToolArgument(
3484 "-FileList",
3485 Value: val.ToString(),
3486 Setter: '=',
3487 Meta: new(
3488 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3489 AllowMultiple: true
3490 )
3491 ));
3492 }
3493 }
3494 return (UbtConfig) this;
3495 }
3496
3497
3498/// <summary>
3499/// Individual file(s) to compile
3500/// </summary>
3501 public virtual UbtConfig File(params object[] values)
3502 {
3503 if (true)
3504 {
3505 if (values != null)
3506 foreach (var val in values)
3507 {
3508 AppendArgument(new UnrealToolArgument(
3509 "-File",
3510 Value: val.ToString(),
3511 Setter: '=',
3512 Meta: new(
3513 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3514 AllowMultiple: true
3515 )
3516 ));
3517 }
3518 }
3519 return (UbtConfig) this;
3520 }
3521
3522
3523/// <summary>
3524/// If a non-zero value, a live coding request will be terminated if more than the given number of actions are required.
3525/// </summary>
3526 public virtual UbtConfig LiveCodingLimit(double? val = null)
3527 {
3528 if (true)
3529 {
3530 AppendArgument(new UnrealToolArgument(
3531 "-LiveCodingLimit",
3532 Value: val?.ToString(),
3533 Setter: '=',
3534 Meta: new(
3535 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3536 AllowMultiple: false
3537 )
3538 ));
3539 }
3540 return (UbtConfig) this;
3541 }
3542
3543
3544/// <summary>
3545/// Clean the target before trying to build it
3546/// </summary>
3547 public virtual UbtConfig Rebuild(bool? val = null)
3548 {
3549 if (true)
3550 {
3551 AppendArgument(new UnrealToolArgument(
3552 "-Rebuild",
3553 Value: val?.ToString(),
3554 Setter: '=',
3555 Meta: new(
3556 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3557 AllowMultiple: false
3558 )
3559 ));
3560 }
3561 return (UbtConfig) this;
3562 }
3563
3564
3565/// <summary>
3566/// Whether to use the verse script interface.
3567/// </summary>
3568 public virtual UbtConfig NoUseVerse(bool present = true)
3569 {
3570 if (present)
3571 {
3572 AppendArgument(new UnrealToolArgument(
3573 "-NoUseVerse",
3574 Value: null,
3575 Setter: '=',
3576 Meta: new(
3577 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
3578 AllowMultiple: false
3579 )
3580 ));
3581 }
3582 return (UbtConfig) this;
3583 }
3584
3585
3586/// <summary>
3587/// Whether to use the verse script interface.
3588/// </summary>
3589 public virtual UbtConfig UseVerse(bool present = true)
3590 {
3591 if (present)
3592 {
3593 AppendArgument(new UnrealToolArgument(
3594 "-UseVerse",
3595 Value: null,
3596 Setter: '=',
3597 Meta: new(
3598 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
3599 AllowMultiple: false
3600 )
3601 ));
3602 }
3603 return (UbtConfig) this;
3604 }
3605
3606
3607/// <summary>Use a heuristic to determine which files are currently being iterated on and exclude them from unity blobs, result in faster
3608/// incremental compile times. The current implementation uses the read-only flag to distinguish the working set, assuming that files will
3609/// be made writable by the source control system if they are being modified. This is true for Perforce, but not for Git.
3610/// Use a heuristic to determine which files are currently being iterated on and exclude them from unity blobs. This results in faster
3611/// incremental compile times. For Perforce repositories, the current implementation uses the read-only flag to distinguish the working
3612/// set, assuming that files will be made writable by the source control system if they are being modified. For Git repositories, the
3613/// implementation uses the git status command. Source code archives downloaded from Git as .zip files are not supported.</summary>
3614 public virtual UbtConfig DisableAdaptiveUnity(bool present = true)
3615 {
3616 if (present)
3617 {
3618 AppendArgument(new UnrealToolArgument(
3619 "-DisableAdaptiveUnity",
3620 Value: null,
3621 Setter: '=',
3622 Meta: new(
3623 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3624 AllowMultiple: false
3625 )
3626 ));
3627 }
3628 return (UbtConfig) this;
3629 }
3630
3631
3632/// <summary>Whether to enable all warnings as errors. UE enables most warnings as errors already, but disables a few (such as deprecation warnings).
3633/// Treat warnings as errors</summary>
3634 public virtual UbtConfig WarningsAsErrors(bool? val = null)
3635 {
3636 if (true)
3637 {
3638 AppendArgument(new UnrealToolArgument(
3639 "-WarningsAsErrors",
3640 Value: val?.ToString(),
3641 Setter: '=',
3642 Meta: new(
3643 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3644 AllowMultiple: false
3645 )
3646 ));
3647 }
3648 return (UbtConfig) this;
3649 }
3650
3651
3652/// <summary>
3653/// Enables HW address sanitizer (HWASan)
3654/// </summary>
3655 public virtual UbtConfig EnableHWASan(bool? val = null)
3656 {
3657 if (true)
3658 {
3659 AppendArgument(new UnrealToolArgument(
3660 "-EnableHWASan",
3661 Value: val?.ToString(),
3662 Setter: '=',
3663 Meta: new(
3664 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3665 AllowMultiple: false
3666 )
3667 ));
3668 }
3669 return (UbtConfig) this;
3670 }
3671
3672
3673/// <summary>
3674/// Enables minimal undefined behavior sanitizer (UBSan)
3675/// </summary>
3676 public virtual UbtConfig EnableMinUBSan(bool? val = null)
3677 {
3678 if (true)
3679 {
3680 AppendArgument(new UnrealToolArgument(
3681 "-EnableMinUBSan",
3682 Value: val?.ToString(),
3683 Setter: '=',
3684 Meta: new(
3685 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3686 AllowMultiple: false
3687 )
3688 ));
3689 }
3690 return (UbtConfig) this;
3691 }
3692
3693
3694/// <summary>
3695/// Turns on tuning of debug info for LLDB
3696/// </summary>
3697 public virtual UbtConfig EnableLLDB(bool? val = null)
3698 {
3699 if (true)
3700 {
3701 AppendArgument(new UnrealToolArgument(
3702 "-EnableLLDB",
3703 Value: val?.ToString(),
3704 Setter: '=',
3705 Meta: new(
3706 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3707 AllowMultiple: false
3708 )
3709 ));
3710 }
3711 return (UbtConfig) this;
3712 }
3713
3714
3715/// <summary>
3716/// Enables the generation of .dsym files. This can be disabled to enable faster iteration times during development.
3717/// </summary>
3718 public virtual UbtConfig NoDSYM(bool present = true)
3719 {
3720 if (present)
3721 {
3722 AppendArgument(new UnrealToolArgument(
3723 "-NoDSYM",
3724 Value: null,
3725 Setter: '=',
3726 Meta: new(
3727 Compatibility: UnrealCompatibility.UE_5_0,
3728 AllowMultiple: false
3729 )
3730 ));
3731 }
3732 return (UbtConfig) this;
3733 }
3734
3735
3736/// <summary>The output type to use for the static analyzer.
3737/// The output type to use for the static analyzer. This is only supported for Clang.</summary>
3739 {
3740 if (true)
3741 {
3742 AppendArgument(new UnrealToolArgument(
3743 "-StaticAnalyzerOutputType",
3744 Value: val?.ToString(),
3745 Setter: '=',
3746 Meta: new(
3747 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3748 AllowMultiple: false
3749 )
3750 ));
3751 }
3752 return (UbtConfig) this;
3753 }
3754
3755
3756/// <summary>Set flags require for determinstic compiles (experimental)
3757/// Force set flags require for determinstic compiling and linking (experimental, may not be fully supported).
3758/// This setting is only recommended for testing, instead:
3759/// * Set bDeterministic on a per module basis in ModuleRules to control deterministic compiling.
3760/// * Set bDeterministic on a per target basis in TargetRules to control deterministic linking.
3761/// Set flags require for deterministic compiling and linking.
3762/// Enabling deterministic mode for msvc disables codegen multithreading so compiling will be slower</summary>
3763 public virtual UbtConfig Deterministic(bool? val = null)
3764 {
3765 if (true)
3766 {
3767 AppendArgument(new UnrealToolArgument(
3768 "-Deterministic",
3769 Value: val?.ToString(),
3770 Setter: '=',
3771 Meta: new(
3772 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3773 AllowMultiple: false
3774 )
3775 ));
3776 }
3777 return (UbtConfig) this;
3778 }
3779
3780
3781/// <summary>Whether or not to suppress warnings of missing SDKs from warnings to LogEventType.Log in UEBuildPlatformSDK.cs
3782/// Missing SDKs error verbosity level will be reduced from warning to log</summary>
3783 public virtual UbtConfig SuppressSDKWarnings(bool? val = null)
3784 {
3785 if (true)
3786 {
3787 AppendArgument(new UnrealToolArgument(
3788 "-SuppressSDKWarnings",
3789 Value: val?.ToString(),
3790 Setter: '=',
3791 Meta: new(
3792 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3793 AllowMultiple: false
3794 )
3795 ));
3796 }
3797 return (UbtConfig) this;
3798 }
3799
3800
3801/// <summary>
3802/// Whether Horde remote compute may be used. Highly experimental, disabled by default.
3803/// </summary>
3804 public virtual UbtConfig HordeCompute(bool present = true)
3805 {
3806 if (present)
3807 {
3808 AppendArgument(new UnrealToolArgument(
3809 "-HordeCompute",
3810 Value: null,
3811 Setter: '=',
3812 Meta: new(
3813 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2,
3814 AllowMultiple: false
3815 )
3816 ));
3817 }
3818 return (UbtConfig) this;
3819 }
3820
3821
3822/// <summary>
3823/// Consider logical cores when determining how many total cpu cores are available.
3824/// </summary>
3825 public virtual UbtConfig AllCores(bool? val = null)
3826 {
3827 if (true)
3828 {
3829 AppendArgument(new UnrealToolArgument(
3830 "-AllCores",
3831 Value: val?.ToString(),
3832 Setter: '=',
3833 Meta: new(
3834 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3835 AllowMultiple: false
3836 )
3837 ));
3838 }
3839 return (UbtConfig) this;
3840 }
3841
3842
3843/// <summary>
3844/// When single file targets are specified, via -File=, -SingleFile=, or -FileList=
3845/// If this option is set, no error will be produced if the source file is not included in the target.
3846/// Additionally, if any file or file list is specified, the target will not be built if none of the specified files are part of that target,
3847/// including the case where a file specified via -FileList= is empty.
3848/// </summary>
3849 public virtual UbtConfig IgnoreInvalidFiles(bool? val = null)
3850 {
3851 if (true)
3852 {
3853 AppendArgument(new UnrealToolArgument(
3854 "-IgnoreInvalidFiles",
3855 Value: val?.ToString(),
3856 Setter: '=',
3857 Meta: new(
3858 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3859 AllowMultiple: false
3860 )
3861 ));
3862 }
3863 return (UbtConfig) this;
3864 }
3865
3866
3867/// <summary>
3868/// Instruct the executor to write compact output e.g. only errors, if supported by the executor.
3869/// This field is used to hold the value when specified from the command line or XML
3870/// </summary>
3871 public virtual UbtConfig CompactOutput(bool? val = null)
3872 {
3873 if (true)
3874 {
3875 AppendArgument(new UnrealToolArgument(
3876 "-CompactOutput",
3877 Value: val?.ToString(),
3878 Setter: '=',
3879 Meta: new(
3880 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3881 AllowMultiple: false
3882 )
3883 ));
3884 }
3885 return (UbtConfig) this;
3886 }
3887
3888
3889/// <summary>
3890/// Override the name used for this target
3891/// </summary>
3892 public virtual UbtConfig TargetNameOverride(object val = null)
3893 {
3894 if (true)
3895 {
3896 AppendArgument(new UnrealToolArgument(
3897 "-TargetNameOverride",
3898 Value: val?.ToString(),
3899 Setter: '=',
3900 Meta: new(
3901 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3902 AllowMultiple: false
3903 )
3904 ));
3905 }
3906 return (UbtConfig) this;
3907 }
3908
3909
3910/// <summary>
3911/// Force the include order to a specific version. Overrides any Target and Module rules.
3912/// </summary>
3914 {
3915 if (true)
3916 {
3917 AppendArgument(new UnrealToolArgument(
3918 "-ForceIncludeOrder",
3919 Value: val?.ToString(),
3920 Setter: '=',
3921 Meta: new(
3922 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
3923 AllowMultiple: false
3924 )
3925 ));
3926 }
3927 return (UbtConfig) this;
3928 }
3929
3930
3931/// <summary>
3932/// Whether to use Iris.
3933/// </summary>
3934 public virtual UbtConfig NoUseIris(bool present = true)
3935 {
3936 if (present)
3937 {
3938 AppendArgument(new UnrealToolArgument(
3939 "-NoUseIris",
3940 Value: null,
3941 Setter: '=',
3942 Meta: new(
3943 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6,
3944 AllowMultiple: false
3945 )
3946 ));
3947 }
3948 return (UbtConfig) this;
3949 }
3950
3951
3952/// <summary>
3953/// Whether to use Iris.
3954/// </summary>
3955 public virtual UbtConfig UseIris(bool present = true)
3956 {
3957 if (present)
3958 {
3959 AppendArgument(new UnrealToolArgument(
3960 "-UseIris",
3961 Value: null,
3962 Setter: '=',
3963 Meta: new(
3964 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6,
3965 AllowMultiple: false
3966 )
3967 ));
3968 }
3969 return (UbtConfig) this;
3970 }
3971
3972
3973
3974 public virtual UbtConfig TrustedServer(bool present = true)
3975 {
3976 if (present)
3977 {
3978 AppendArgument(new UnrealToolArgument(
3979 "-TrustedServer",
3980 Value: null,
3981 Setter: '=',
3982 Meta: new(
3983 Compatibility: UnrealCompatibility.UE_5_1,
3984 AllowMultiple: false
3985 )
3986 ));
3987 }
3988 return (UbtConfig) this;
3989 }
3990
3991
3992
3993 public virtual UbtConfig NoTrustedServer(bool present = true)
3994 {
3995 if (present)
3996 {
3997 AppendArgument(new UnrealToolArgument(
3998 "-NoTrustedServer",
3999 Value: null,
4000 Setter: '=',
4001 Meta: new(
4002 Compatibility: UnrealCompatibility.UE_5_1,
4003 AllowMultiple: false
4004 )
4005 ));
4006 }
4007 return (UbtConfig) this;
4008 }
4009
4010
4011/// <summary>
4012/// Whether to merge module and generated unity files for faster compilation.
4013/// </summary>
4014 public virtual UbtConfig DisableMergingUnityFiles(bool present = true)
4015 {
4016 if (present)
4017 {
4018 AppendArgument(new UnrealToolArgument(
4019 "-DisableMergingUnityFiles",
4020 Value: null,
4021 Setter: '=',
4022 Meta: new(
4023 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
4024 AllowMultiple: false
4025 )
4026 ));
4027 }
4028 return (UbtConfig) this;
4029 }
4030
4031
4032/// <summary>
4033/// Forces frame pointers to be retained this is usually required when you want reliable callstacks e.g. mallocframeprofiler
4034/// </summary>
4035 public virtual UbtConfig RetainFramePointers(bool present = true)
4036 {
4037 if (present)
4038 {
4039 AppendArgument(new UnrealToolArgument(
4040 "-RetainFramePointers",
4041 Value: null,
4042 Setter: '=',
4043 Meta: new(
4044 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4045 AllowMultiple: false
4046 )
4047 ));
4048 }
4049 return (UbtConfig) this;
4050 }
4051
4052
4053/// <summary>
4054/// Forces frame pointers to be retained this is usually required when you want reliable callstacks e.g. mallocframeprofiler
4055/// </summary>
4056 public virtual UbtConfig NoRetainFramePointers(bool present = true)
4057 {
4058 if (present)
4059 {
4060 AppendArgument(new UnrealToolArgument(
4061 "-NoRetainFramePointers",
4062 Value: null,
4063 Setter: '=',
4064 Meta: new(
4065 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4066 AllowMultiple: false
4067 )
4068 ));
4069 }
4070 return (UbtConfig) this;
4071 }
4072
4073
4074/// <summary>
4075/// An approximate number of bytes of C++ code to target for inclusion in a single unified C++ file.
4076/// </summary>
4077 public virtual UbtConfig BytesPerUnityCPP(double? val = null)
4078 {
4079 if (true)
4080 {
4081 AppendArgument(new UnrealToolArgument(
4082 "-BytesPerUnityCPP",
4083 Value: val?.ToString(),
4084 Setter: '=',
4085 Meta: new(
4086 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4087 AllowMultiple: false
4088 )
4089 ));
4090 }
4091 return (UbtConfig) this;
4092 }
4093
4094
4095/// <summary>Whether to add additional information to the unity files, such as '_of_X' in the file name.
4096/// Whether to add additional information to the unity files, such as '_of_X' in the file name. Not recommended.</summary>
4097 public virtual UbtConfig DetailedUnityFiles(bool present = true)
4098 {
4099 if (present)
4100 {
4101 AppendArgument(new UnrealToolArgument(
4102 "-DetailedUnityFiles",
4103 Value: null,
4104 Setter: '=',
4105 Meta: new(
4106 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5,
4107 AllowMultiple: false
4108 )
4109 ));
4110 }
4111 return (UbtConfig) this;
4112 }
4113
4114
4115/// <summary>Whether to add additional information to the unity files, such as '_of_X' in the file name.
4116/// Whether to add additional information to the unity files, such as '_of_X' in the file name. Not recommended.</summary>
4117 public virtual UbtConfig NoDetailedUnityFiles(bool present = true)
4118 {
4119 if (present)
4120 {
4121 AppendArgument(new UnrealToolArgument(
4122 "-NoDetailedUnityFiles",
4123 Value: null,
4124 Setter: '=',
4125 Meta: new(
4126 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5,
4127 AllowMultiple: false
4128 )
4129 ));
4130 }
4131 return (UbtConfig) this;
4132 }
4133
4134
4135/// <summary>
4136/// Generate dependency files by preprocessing. This is only recommended when distributing builds as it adds additional overhead.
4137/// </summary>
4138 public virtual UbtConfig PreprocessDepends(bool? val = null)
4139 {
4140 if (true)
4141 {
4142 AppendArgument(new UnrealToolArgument(
4143 "-PreprocessDepends",
4144 Value: val?.ToString(),
4145 Setter: '=',
4146 Meta: new(
4147 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4148 AllowMultiple: false
4149 )
4150 ));
4151 }
4152 return (UbtConfig) this;
4153 }
4154
4155
4156/// <summary>
4157/// The mode to use for the static analyzer. This is only supported for Clang.
4158/// Shallow mode completes quicker but is generally not recommended.
4159/// </summary>
4161 {
4162 if (true)
4163 {
4164 AppendArgument(new UnrealToolArgument(
4165 "-StaticAnalyzerMode",
4166 Value: val?.ToString(),
4167 Setter: '=',
4168 Meta: new(
4169 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4170 AllowMultiple: false
4171 )
4172 ));
4173 }
4174 return (UbtConfig) this;
4175 }
4176
4177
4178/// <summary>
4179/// Package full path (directory + filename) where to store input files used at link time
4180/// Normally used to debug a linker crash for platforms that support it
4181/// </summary>
4182 public virtual UbtConfig PackagePath(object val = null)
4183 {
4184 if (true)
4185 {
4186 AppendArgument(new UnrealToolArgument(
4187 "-PackagePath",
4188 Value: val?.ToString(),
4189 Setter: '=',
4190 Meta: new(
4191 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4192 AllowMultiple: false
4193 )
4194 ));
4195 }
4196 return (UbtConfig) this;
4197 }
4198
4199
4200/// <summary>
4201/// Directory where to put crash report files for platforms that support it
4202/// </summary>
4203 public virtual UbtConfig CrashDiagnosticDirectory(object val = null)
4204 {
4205 if (true)
4206 {
4207 AppendArgument(new UnrealToolArgument(
4208 "-CrashDiagnosticDirectory",
4209 Value: val?.ToString(),
4210 Setter: '=',
4211 Meta: new(
4212 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4213 AllowMultiple: false
4214 )
4215 ));
4216 }
4217 return (UbtConfig) this;
4218 }
4219
4220
4221/// <summary>
4222/// Disable supports for inlining gen.cpps
4223/// </summary>
4224 public virtual UbtConfig DisableInliningGenCpps(bool? val = null)
4225 {
4226 if (true)
4227 {
4228 AppendArgument(new UnrealToolArgument(
4229 "-DisableInliningGenCpps",
4230 Value: val?.ToString(),
4231 Setter: '=',
4232 Meta: new(
4233 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
4234 AllowMultiple: false
4235 )
4236 ));
4237 }
4238 return (UbtConfig) this;
4239 }
4240
4241
4242/// <summary>
4243/// Which C standard to use for compiling this target
4244/// </summary>
4245 public virtual UbtConfig CStd(CStandardVersion? val = null)
4246 {
4247 if (true)
4248 {
4249 AppendArgument(new UnrealToolArgument(
4250 "-CStd",
4251 Value: val?.ToString(),
4252 Setter: '=',
4253 Meta: new(
4254 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4255 AllowMultiple: false
4256 )
4257 ));
4258 }
4259 return (UbtConfig) this;
4260 }
4261
4262
4263/// <summary>Disables all logging including the default log location
4264/// Disable log file creation including the default log file</summary>
4265 public virtual UbtConfig NoLog(bool? val = null)
4266 {
4267 if (true)
4268 {
4269 AppendArgument(new UnrealToolArgument(
4270 "-NoLog",
4271 Value: val?.ToString(),
4272 Setter: '=',
4273 Meta: new(
4274 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4275 AllowMultiple: false
4276 )
4277 ));
4278 }
4279 return (UbtConfig) this;
4280 }
4281
4282
4283/// <summary>Run testing scripts</summary>
4284 public virtual UbtConfig Test(bool? val = null)
4285 {
4286 if (true)
4287 {
4288 AppendArgument(new UnrealToolArgument(
4289 "-Test",
4290 Value: val?.ToString(),
4291 Setter: '=',
4292 Meta: new(
4293 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4294 AllowMultiple: false
4295 )
4296 ));
4297 }
4298 return (UbtConfig) this;
4299 }
4300
4301
4302/// <summary>Disable concurrent parsing and code generation</summary>
4303 public virtual UbtConfig NoGoWide(bool? val = null)
4304 {
4305 if (true)
4306 {
4307 AppendArgument(new UnrealToolArgument(
4308 "-NoGoWide",
4309 Value: val?.ToString(),
4310 Setter: '=',
4311 Meta: new(
4312 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4313 AllowMultiple: false
4314 )
4315 ));
4316 }
4317 return (UbtConfig) this;
4318 }
4319
4320
4321/// <summary>Write all the output to a reference directory</summary>
4322 public virtual UbtConfig WriteRef(bool? val = null)
4323 {
4324 if (true)
4325 {
4326 AppendArgument(new UnrealToolArgument(
4327 "-WriteRef",
4328 Value: val?.ToString(),
4329 Setter: '=',
4330 Meta: new(
4331 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4332 AllowMultiple: false
4333 )
4334 ));
4335 }
4336 return (UbtConfig) this;
4337 }
4338
4339
4340/// <summary>Write all the output to a verification directory and compare to the reference output</summary>
4341 public virtual UbtConfig VerifyRef(bool? val = null)
4342 {
4343 if (true)
4344 {
4345 AppendArgument(new UnrealToolArgument(
4346 "-VerifyRef",
4347 Value: val?.ToString(),
4348 Setter: '=',
4349 Meta: new(
4350 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4351 AllowMultiple: false
4352 )
4353 ));
4354 }
4355 return (UbtConfig) this;
4356 }
4357
4358
4359/// <summary>Do not save any output files other than reference output</summary>
4360 public virtual UbtConfig NoOutput(bool? val = null)
4361 {
4362 if (true)
4363 {
4364 AppendArgument(new UnrealToolArgument(
4365 "-NoOutput",
4366 Value: val?.ToString(),
4367 Setter: '=',
4368 Meta: new(
4369 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4370 AllowMultiple: false
4371 )
4372 ));
4373 }
4374 return (UbtConfig) this;
4375 }
4376
4377
4378/// <summary>Include extra content in generated output to assist with debugging</summary>
4379 public virtual UbtConfig IncludeDebugOutput(bool? val = null)
4380 {
4381 if (true)
4382 {
4383 AppendArgument(new UnrealToolArgument(
4384 "-IncludeDebugOutput",
4385 Value: val?.ToString(),
4386 Setter: '=',
4387 Meta: new(
4388 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4389 AllowMultiple: false
4390 )
4391 ));
4392 }
4393 return (UbtConfig) this;
4394 }
4395
4396
4397/// <summary>Disable all default exporters. Useful for when a specific exporter is to be run</summary>
4398 public virtual UbtConfig NoDefaultExporters(bool? val = null)
4399 {
4400 if (true)
4401 {
4402 AppendArgument(new UnrealToolArgument(
4403 "-NoDefaultExporters",
4404 Value: val?.ToString(),
4405 Setter: '=',
4406 Meta: new(
4407 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4408 AllowMultiple: false
4409 )
4410 ));
4411 }
4412 return (UbtConfig) this;
4413 }
4414
4415
4416/// <summary>
4417/// Do not use Gradle if previous APK exists and only libUnreal.so changed
4418/// </summary>
4419 public virtual UbtConfig BypassGradlePackaging(bool present = true)
4420 {
4421 if (present)
4422 {
4423 AppendArgument(new UnrealToolArgument(
4424 "-BypassGradlePackaging",
4425 Value: null,
4426 Setter: '=',
4427 Meta: new(
4428 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4429 AllowMultiple: false
4430 )
4431 ));
4432 }
4433 return (UbtConfig) this;
4434 }
4435
4436
4437/// <summary>
4438/// Disables clang build verification checks on static libraries
4439/// </summary>
4440 public virtual UbtConfig Skipclangvalidation(bool present = true)
4441 {
4442 if (present)
4443 {
4444 AppendArgument(new UnrealToolArgument(
4445 "-skipclangvalidation",
4446 Value: null,
4447 Setter: '=',
4448 Meta: new(
4449 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4450 AllowMultiple: false
4451 )
4452 ));
4453 }
4454 return (UbtConfig) this;
4455 }
4456
4457
4458/// <summary>Enables the generation of .dsym files. This can be disabled to enable faster iteration times during development.
4459/// Don't generate crashlytics data</summary>
4460 public virtual UbtConfig EnableDSYM(bool present = true)
4461 {
4462 if (present)
4463 {
4464 AppendArgument(new UnrealToolArgument(
4465 "-EnableDSYM",
4466 Value: null,
4467 Setter: '=',
4468 Meta: new(
4469 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4470 AllowMultiple: false
4471 )
4472 ));
4473 }
4474 return (UbtConfig) this;
4475 }
4476
4477
4478/// <summary>
4479/// Enables updated __cplusplus macro (/Zc:__cplusplus).
4480/// </summary>
4481 public virtual UbtConfig UpdatedCPPMacro(bool? val = null)
4482 {
4483 if (true)
4484 {
4485 AppendArgument(new UnrealToolArgument(
4486 "-UpdatedCPPMacro",
4487 Value: val?.ToString(),
4488 Setter: '=',
4489 Meta: new(
4490 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4491 AllowMultiple: false
4492 )
4493 ));
4494 }
4495 return (UbtConfig) this;
4496 }
4497
4498
4499/// <summary>
4500/// Enables inline conformance (Remove unreferenced COMDAT) (/Zc:inline).
4501/// </summary>
4502 public virtual UbtConfig StrictInline(bool? val = null)
4503 {
4504 if (true)
4505 {
4506 AppendArgument(new UnrealToolArgument(
4507 "-StrictInline",
4508 Value: val?.ToString(),
4509 Setter: '=',
4510 Meta: new(
4511 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4512 AllowMultiple: false
4513 )
4514 ));
4515 }
4516 return (UbtConfig) this;
4517 }
4518
4519
4520/// <summary>Enables new preprocessor conformance (/Zc:preprocessor).
4521/// Enables new preprocessor conformance (/Zc:preprocessor). This is always enabled for C++20 modules.</summary>
4522 public virtual UbtConfig StrictPreprocessor(bool? val = null)
4523 {
4524 if (true)
4525 {
4526 AppendArgument(new UnrealToolArgument(
4527 "-StrictPreprocessor",
4528 Value: val?.ToString(),
4529 Setter: '=',
4530 Meta: new(
4531 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4532 AllowMultiple: false
4533 )
4534 ));
4535 }
4536 return (UbtConfig) this;
4537 }
4538
4539
4540/// <summary>
4541/// Enables enum types conformance (/Zc:enumTypes) in VS2022 17.4 Preview 4.0+.
4542/// </summary>
4543 public virtual UbtConfig StrictEnumTypes(bool? val = null)
4544 {
4545 if (true)
4546 {
4547 AppendArgument(new UnrealToolArgument(
4548 "-StrictEnumTypes",
4549 Value: val?.ToString(),
4550 Setter: '=',
4551 Meta: new(
4552 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4553 AllowMultiple: false
4554 )
4555 ));
4556 }
4557 return (UbtConfig) this;
4558 }
4559
4560
4561/// <summary>
4562/// When specified only primary project file (root.json) will be generated.
4563/// Normally project files for specific configurations are generated together with primary project file.
4564/// </summary>
4565 public virtual UbtConfig OnlyPrimaryProjectFile(bool? val = null)
4566 {
4567 if (true)
4568 {
4569 AppendArgument(new UnrealToolArgument(
4570 "-OnlyPrimaryProjectFile",
4571 Value: val?.ToString(),
4572 Setter: '=',
4573 Meta: new(
4574 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4575 AllowMultiple: false
4576 )
4577 ));
4578 }
4579 return (UbtConfig) this;
4580 }
4581
4582
4583/// <summary>
4584/// Enable Position Independent Executable (PIE). Has an overhead cost
4585/// </summary>
4586 public virtual UbtConfig Pie(bool? val = null)
4587 {
4588 if (true)
4589 {
4590 AppendArgument(new UnrealToolArgument(
4591 "-pie",
4592 Value: val?.ToString(),
4593 Setter: '=',
4594 Meta: new(
4595 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4596 AllowMultiple: false
4597 )
4598 ));
4599 }
4600 return (UbtConfig) this;
4601 }
4602
4603
4604/// <summary>
4605/// Enable Stack Protection. Has an overhead cost
4606/// </summary>
4607 public virtual UbtConfig StackProtect(bool? val = null)
4608 {
4609 if (true)
4610 {
4611 AppendArgument(new UnrealToolArgument(
4612 "-stack-protect",
4613 Value: val?.ToString(),
4614 Setter: '=',
4615 Meta: new(
4616 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4617 AllowMultiple: false
4618 )
4619 ));
4620 }
4621 return (UbtConfig) this;
4622 }
4623
4624
4625/// <summary>
4626/// Allows to fine tune optimizations level for speed and\or code size
4627/// </summary>
4629 {
4630 if (true)
4631 {
4632 AppendArgument(new UnrealToolArgument(
4633 "-OptimizationLevel",
4634 Value: val?.ToString(),
4635 Setter: '=',
4636 Meta: new(
4637 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4638 AllowMultiple: false
4639 )
4640 ));
4641 }
4642 return (UbtConfig) this;
4643 }
4644
4645
4646/// <summary>
4647/// Tells "include what you use" to only compile header files.
4648/// </summary>
4649 public virtual UbtConfig IWYUHeadersOnly(bool? val = null)
4650 {
4651 if (true)
4652 {
4653 AppendArgument(new UnrealToolArgument(
4654 "-IWYUHeadersOnly",
4655 Value: val?.ToString(),
4656 Setter: '=',
4657 Meta: new(
4658 Compatibility: UnrealCompatibility.UE_5_2,
4659 AllowMultiple: false
4660 )
4661 ));
4662 }
4663 return (UbtConfig) this;
4664 }
4665
4666
4667/// <summary>
4668/// Disables overrides that are set by the module
4669/// </summary>
4671 {
4672 if (present)
4673 {
4674 AppendArgument(new UnrealToolArgument(
4675 "-DisableModuleNumIncludedBytesPerUnityCPPOverride",
4676 Value: null,
4677 Setter: '=',
4678 Meta: new(
4679 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4680 AllowMultiple: false
4681 )
4682 ));
4683 }
4684 return (UbtConfig) this;
4685 }
4686
4687
4688/// <summary>
4689/// Directory where to put the ThinLTO cache on supported platforms.
4690/// </summary>
4691 public virtual UbtConfig ThinLTOCacheDirectory(object val = null)
4692 {
4693 if (true)
4694 {
4695 AppendArgument(new UnrealToolArgument(
4696 "-ThinLTOCacheDirectory",
4697 Value: val?.ToString(),
4698 Setter: '=',
4699 Meta: new(
4700 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4701 AllowMultiple: false
4702 )
4703 ));
4704 }
4705 return (UbtConfig) this;
4706 }
4707
4708
4709/// <summary>
4710/// Arguments that will be applied to prune the ThinLTO cache on supported platforms.
4711/// Arguments will only be applied if ThinLTOCacheDirectory is set.
4712/// </summary>
4713 public virtual UbtConfig ThinLTOCachePruningArguments(object val = null)
4714 {
4715 if (true)
4716 {
4717 AppendArgument(new UnrealToolArgument(
4718 "-ThinLTOCachePruningArguments",
4719 Value: val?.ToString(),
4720 Setter: '=',
4721 Meta: new(
4722 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4723 AllowMultiple: false
4724 )
4725 ));
4726 }
4727 return (UbtConfig) this;
4728 }
4729
4730
4731/// <summary>True if we should use the Clang linker (LLD) when we are compiling with Clang, or Intel linker (xilink\xilib) when we are compiling with Intel oneAPI, otherwise we use the MSVC linker.
4732/// True if we should use the Clang linker (LLD) when we are compiling with Clang or Intel oneAPI, otherwise we use the MSVC linker.</summary>
4733 public virtual UbtConfig ClangLinker(bool? val = null)
4734 {
4735 if (true)
4736 {
4737 AppendArgument(new UnrealToolArgument(
4738 "-ClangLinker",
4739 Value: val?.ToString(),
4740 Setter: '=',
4741 Meta: new(
4742 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4743 AllowMultiple: false
4744 )
4745 ));
4746 }
4747 return (UbtConfig) this;
4748 }
4749
4750
4751/// <summary>If specified along with -PGOProfile, then /FASTGENPROFILE will be used instead of /GENPROFILE.
4752/// This usually means that the PGO data is generated faster, but the resulting data may not yield as efficient optimizations during -PGOOptimize
4753/// If specified along with -PGOProfile, then /FASTGENPROFILE will be used instead of /GENPROFILE. This usually means that the PGO data is generated faster, but the resulting data may not yield as efficient optimizations during -PGOOptimize</summary>
4754 public virtual UbtConfig PGOFastGen(bool? val = null)
4755 {
4756 if (true)
4757 {
4758 AppendArgument(new UnrealToolArgument(
4759 "-PGOFastGen",
4760 Value: val?.ToString(),
4761 Setter: '=',
4762 Meta: new(
4763 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4764 AllowMultiple: false
4765 )
4766 ));
4767 }
4768 return (UbtConfig) this;
4769 }
4770
4771
4772/// <summary>
4773/// Do not create compile commands json files with compiler arguments for each file; works better with VS Code extension using
4774/// UBT server mode.
4775/// </summary>
4776 public virtual UbtConfig NoCompileCommands(bool? val = null)
4777 {
4778 if (true)
4779 {
4780 AppendArgument(new UnrealToolArgument(
4781 "-NoCompileCommands",
4782 Value: val?.ToString(),
4783 Setter: '=',
4784 Meta: new(
4785 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4786 AllowMultiple: false
4787 )
4788 ));
4789 }
4790 return (UbtConfig) this;
4791 }
4792
4793
4794/// <summary>
4795/// If set, artifacts will be read
4796/// </summary>
4797 public virtual UbtConfig ArtifactReads(bool present = true)
4798 {
4799 if (present)
4800 {
4801 AppendArgument(new UnrealToolArgument(
4802 "-ArtifactReads",
4803 Value: null,
4804 Setter: '=',
4805 Meta: new(
4806 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4807 AllowMultiple: false
4808 )
4809 ));
4810 }
4811 return (UbtConfig) this;
4812 }
4813
4814
4815/// <summary>
4816/// If set, artifacts will be read
4817/// </summary>
4818 public virtual UbtConfig NoArtifactReads(bool present = true)
4819 {
4820 if (present)
4821 {
4822 AppendArgument(new UnrealToolArgument(
4823 "-NoArtifactReads",
4824 Value: null,
4825 Setter: '=',
4826 Meta: new(
4827 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4828 AllowMultiple: false
4829 )
4830 ));
4831 }
4832 return (UbtConfig) this;
4833 }
4834
4835
4836/// <summary>
4837/// If set, artifacts will be written
4838/// </summary>
4839 public virtual UbtConfig ArtifactWrites(bool present = true)
4840 {
4841 if (present)
4842 {
4843 AppendArgument(new UnrealToolArgument(
4844 "-ArtifactWrites",
4845 Value: null,
4846 Setter: '=',
4847 Meta: new(
4848 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4849 AllowMultiple: false
4850 )
4851 ));
4852 }
4853 return (UbtConfig) this;
4854 }
4855
4856
4857/// <summary>
4858/// If set, artifacts will be written
4859/// </summary>
4860 public virtual UbtConfig NoArtifactWrites(bool present = true)
4861 {
4862 if (present)
4863 {
4864 AppendArgument(new UnrealToolArgument(
4865 "-NoArtifactWrites",
4866 Value: null,
4867 Setter: '=',
4868 Meta: new(
4869 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4870 AllowMultiple: false
4871 )
4872 ));
4873 }
4874 return (UbtConfig) this;
4875 }
4876
4877
4878/// <summary>
4879/// If true, log all artifact cache misses as informational messages
4880/// </summary>
4881 public virtual UbtConfig LogArtifactCacheMisses(bool present = true)
4882 {
4883 if (present)
4884 {
4885 AppendArgument(new UnrealToolArgument(
4886 "-LogArtifactCacheMisses",
4887 Value: null,
4888 Setter: '=',
4889 Meta: new(
4890 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4891 AllowMultiple: false
4892 )
4893 ));
4894 }
4895 return (UbtConfig) this;
4896 }
4897
4898
4899/// <summary>
4900/// Location to store the artifacts.
4901/// </summary>
4902 public virtual UbtConfig ArtifactDirectory(object val = null)
4903 {
4904 if (true)
4905 {
4906 AppendArgument(new UnrealToolArgument(
4907 "-ArtifactDirectory",
4908 Value: val?.ToString(),
4909 Setter: '=',
4910 Meta: new(
4911 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4912 AllowMultiple: false
4913 )
4914 ));
4915 }
4916 return (UbtConfig) this;
4917 }
4918
4919
4920/// <summary>
4921/// Whether we should treat the ForeignPlugin argument as a local plugin for building purposes
4922/// </summary>
4923 public virtual UbtConfig BuildPluginAsLocal(bool? val = null)
4924 {
4925 if (true)
4926 {
4927 AppendArgument(new UnrealToolArgument(
4928 "-BuildPluginAsLocal",
4929 Value: val?.ToString(),
4930 Setter: '=',
4931 Meta: new(
4932 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4933 AllowMultiple: false
4934 )
4935 ));
4936 }
4937 return (UbtConfig) this;
4938 }
4939
4940
4941/// <summary>
4942/// Relative path to file(s) to compile
4943/// </summary>
4944 public virtual UbtConfig Files(params object[] values)
4945 {
4946 if (true)
4947 {
4948 AppendArgument(new UnrealToolArgument(
4949 "-Files",
4950 Value: values != null && values.Length > 0 ? string.Join(";", values) : null,
4951 Setter: '=',
4952 Meta: new(
4953 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4954 AllowMultiple: true
4955 )
4956 ));
4957 }
4958 return (UbtConfig) this;
4959 }
4960
4961
4962/// <summary>
4963/// Working directory when compiling with RelativePathsToSpecificFilesToCompile
4964/// </summary>
4965 public virtual UbtConfig WorkingDir(object val = null)
4966 {
4967 if (true)
4968 {
4969 AppendArgument(new UnrealToolArgument(
4970 "-WorkingDir",
4971 Value: val?.ToString(),
4972 Setter: '=',
4973 Meta: new(
4974 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4975 AllowMultiple: false
4976 )
4977 ));
4978 }
4979 return (UbtConfig) this;
4980 }
4981
4982
4983/// <summary>Will build all files that directly include any of the files provided in -SingleFile
4984/// Will build all files that directly include any of the files provided in -SingleFile, not including generated code</summary>
4985 public virtual UbtConfig SingleFileBuildDependents(bool? val = null)
4986 {
4987 if (true)
4988 {
4989 AppendArgument(new UnrealToolArgument(
4990 "-SingleFileBuildDependents",
4991 Value: val?.ToString(),
4992 Setter: '=',
4993 Meta: new(
4994 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
4995 AllowMultiple: false
4996 )
4997 ));
4998 }
4999 return (UbtConfig) this;
5000 }
5001
5002
5003/// <summary>
5004/// Adds header files in included modules to the build.
5005/// </summary>
5006 public virtual UbtConfig IncludeHeaders(bool? val = null)
5007 {
5008 if (true)
5009 {
5010 AppendArgument(new UnrealToolArgument(
5011 "-IncludeHeaders",
5012 Value: val?.ToString(),
5013 Setter: '=',
5014 Meta: new(
5015 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5016 AllowMultiple: false
5017 )
5018 ));
5019 }
5020 return (UbtConfig) this;
5021 }
5022
5023
5024/// <summary>
5025/// Set flags require for deterministic compiling and linking.
5026/// Enabling deterministic mode for msvc disables codegen multithreading so compiling will be slower
5027/// </summary>
5028 public virtual UbtConfig NonDeterministic(bool present = true)
5029 {
5030 if (present)
5031 {
5032 AppendArgument(new UnrealToolArgument(
5033 "-NonDeterministic",
5034 Value: null,
5035 Setter: '=',
5036 Meta: new(
5037 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5038 AllowMultiple: false
5039 )
5040 ));
5041 }
5042 return (UbtConfig) this;
5043 }
5044
5045
5046/// <summary>
5047/// Which C++ standard to use for compiling this target (for engine modules)
5048/// </summary>
5049 public virtual UbtConfig CppStdEngine(CppStandardVersion? val = null)
5050 {
5051 if (true)
5052 {
5053 AppendArgument(new UnrealToolArgument(
5054 "-CppStdEngine",
5055 Value: val?.ToString(),
5056 Setter: '=',
5057 Meta: new(
5058 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5059 AllowMultiple: false
5060 )
5061 ));
5062 }
5063 return (UbtConfig) this;
5064 }
5065
5066
5067/// <summary>Whether to use the AutoRTFM Clang compiler.
5068/// Whether to use force AutoRTFM Clang compiler off.</summary>
5069 public virtual UbtConfig NoUseAutoRTFM(bool present = true)
5070 {
5071 if (present)
5072 {
5073 AppendArgument(new UnrealToolArgument(
5074 "-NoUseAutoRTFM",
5075 Value: null,
5076 Setter: '=',
5077 Meta: new(
5078 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5079 AllowMultiple: false
5080 )
5081 ));
5082 }
5083 return (UbtConfig) this;
5084 }
5085
5086
5087/// <summary>
5088/// Whether to use the AutoRTFM Clang compiler.
5089/// </summary>
5090 public virtual UbtConfig UseAutoRTFM(bool present = true)
5091 {
5092 if (present)
5093 {
5094 AppendArgument(new UnrealToolArgument(
5095 "-UseAutoRTFM",
5096 Value: null,
5097 Setter: '=',
5098 Meta: new(
5099 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4,
5100 AllowMultiple: false
5101 )
5102 ));
5103 }
5104 return (UbtConfig) this;
5105 }
5106
5107
5108/// <summary>
5109/// Whether to compile in Chaos Visual Debugger (CVD) support features to record the state of the physics simulation
5110/// </summary>
5111 public virtual UbtConfig CompileChaosVisualDebuggerSupport(bool? val = null)
5112 {
5113 if (true)
5114 {
5115 AppendArgument(new UnrealToolArgument(
5116 "-CompileChaosVisualDebuggerSupport",
5117 Value: val?.ToString(),
5118 Setter: '=',
5119 Meta: new(
5120 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5121 AllowMultiple: false
5122 )
5123 ));
5124 }
5125 return (UbtConfig) this;
5126 }
5127
5128
5129/// <summary>
5130/// When used with -IncludeHeaders, only header files will be compiled.
5131/// </summary>
5132 public virtual UbtConfig HeadersOnly(bool? val = null)
5133 {
5134 if (true)
5135 {
5136 AppendArgument(new UnrealToolArgument(
5137 "-HeadersOnly",
5138 Value: val?.ToString(),
5139 Setter: '=',
5140 Meta: new(
5141 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5142 AllowMultiple: false
5143 )
5144 ));
5145 }
5146 return (UbtConfig) this;
5147 }
5148
5149
5150/// <summary>
5151/// Indicates what warning/error level to treat potential PCH performance issues.
5152/// </summary>
5154 {
5155 if (true)
5156 {
5157 AppendArgument(new UnrealToolArgument(
5158 "-PCHPerformanceIssueWarningLevel",
5159 Value: val?.ToString(),
5160 Setter: '=',
5161 Meta: new(
5162 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5163 AllowMultiple: false
5164 )
5165 ));
5166 }
5167 return (UbtConfig) this;
5168 }
5169
5170
5171/// <summary>
5172/// How to treat general module include path validation messages
5173/// </summary>
5175 {
5176 if (true)
5177 {
5178 AppendArgument(new UnrealToolArgument(
5179 "-ModuleIncludePathWarningLevel",
5180 Value: val?.ToString(),
5181 Setter: '=',
5182 Meta: new(
5183 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5184 AllowMultiple: false
5185 )
5186 ));
5187 }
5188 return (UbtConfig) this;
5189 }
5190
5191
5192/// <summary>
5193/// How to treat private module include path validation messages, where a module is adding an include path that exposes private headers
5194/// </summary>
5196 {
5197 if (true)
5198 {
5199 AppendArgument(new UnrealToolArgument(
5200 "-ModuleIncludePrivateWarningLevel",
5201 Value: val?.ToString(),
5202 Setter: '=',
5203 Meta: new(
5204 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5205 AllowMultiple: false
5206 )
5207 ));
5208 }
5209 return (UbtConfig) this;
5210 }
5211
5212
5213/// <summary>
5214/// How to treat unnecessary module sub-directory include path validation messages
5215/// </summary>
5217 {
5218 if (true)
5219 {
5220 AppendArgument(new UnrealToolArgument(
5221 "-ModuleIncludeSubdirectoryWarningLevel",
5222 Value: val?.ToString(),
5223 Setter: '=',
5224 Meta: new(
5225 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5226 AllowMultiple: false
5227 )
5228 ));
5229 }
5230 return (UbtConfig) this;
5231 }
5232
5233
5234/// <summary>
5235/// Whether PDB files should be used for Visual C++ builds.
5236/// </summary>
5237 public virtual UbtConfig UsePDB(bool present = true)
5238 {
5239 if (present)
5240 {
5241 AppendArgument(new UnrealToolArgument(
5242 "-UsePDB",
5243 Value: null,
5244 Setter: '=',
5245 Meta: new(
5246 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5247 AllowMultiple: false
5248 )
5249 ));
5250 }
5251 return (UbtConfig) this;
5252 }
5253
5254
5255/// <summary>
5256/// Whether PCHs should be chained when compiling with clang.
5257/// </summary>
5258 public virtual UbtConfig NoPCHChain(bool present = true)
5259 {
5260 if (present)
5261 {
5262 AppendArgument(new UnrealToolArgument(
5263 "-NoPCHChain",
5264 Value: null,
5265 Setter: '=',
5266 Meta: new(
5267 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5268 AllowMultiple: false
5269 )
5270 ));
5271 }
5272 return (UbtConfig) this;
5273 }
5274
5275
5276/// <summary>
5277/// Whether to generate assembly data while compiling this target. Works exclusively on MSVC for now.
5278/// </summary>
5279 public virtual UbtConfig WithAssembly(bool? val = null)
5280 {
5281 if (true)
5282 {
5283 AppendArgument(new UnrealToolArgument(
5284 "-WithAssembly",
5285 Value: val?.ToString(),
5286 Setter: '=',
5287 Meta: new(
5288 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5289 AllowMultiple: false
5290 )
5291 ));
5292 }
5293 return (UbtConfig) this;
5294 }
5295
5296
5297/// <summary>
5298/// Whether the target requires code coverage compilation and linking.
5299/// </summary>
5300 public virtual UbtConfig CodeCoverage(bool present = true)
5301 {
5302 if (present)
5303 {
5304 AppendArgument(new UnrealToolArgument(
5305 "-CodeCoverage",
5306 Value: null,
5307 Setter: '=',
5308 Meta: new(
5309 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5310 AllowMultiple: false
5311 )
5312 ));
5313 }
5314 return (UbtConfig) this;
5315 }
5316
5317
5318/// <summary>
5319/// Whether to support edit and continue.
5320/// </summary>
5321 public virtual UbtConfig SupportEditAndContinue(bool? val = null)
5322 {
5323 if (true)
5324 {
5325 AppendArgument(new UnrealToolArgument(
5326 "-SupportEditAndContinue",
5327 Value: val?.ToString(),
5328 Setter: '=',
5329 Meta: new(
5330 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5331 AllowMultiple: false
5332 )
5333 ));
5334 }
5335 return (UbtConfig) this;
5336 }
5337
5338
5339/// <summary>Direct the compiler to generate AVX instructions wherever SSE or AVX intrinsics are used, on the x64 platforms that support it.
5340/// Note that by enabling this you are changing the minspec for the PC platform, and the resultant executable will crash on machines without AVX support.
5341/// Direct the compiler to generate AVX instructions wherever SSE or AVX intrinsics are used, on the x64 platforms that support it. Ignored for arm64.
5342/// Note that by enabling this you are changing the minspec for the target platform, and the resultant executable will crash on machines without AVX support.</summary>
5344 {
5345 if (true)
5346 {
5347 AppendArgument(new UnrealToolArgument(
5348 "-MinCpuArchX64",
5349 Value: val?.ToString(),
5350 Setter: '=',
5351 Meta: new(
5352 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5353 AllowMultiple: false
5354 )
5355 ));
5356 }
5357 return (UbtConfig) this;
5358 }
5359
5360
5361/// <summary>Enables LibFuzzer
5362/// Enables LibFuzzer.
5363/// Enables LibFuzzer. Only supported for Visual Studio 2022 17.0.0 and up.</summary>
5364 public virtual UbtConfig EnableLibFuzzer(bool? val = null)
5365 {
5366 if (true)
5367 {
5368 AppendArgument(new UnrealToolArgument(
5369 "-EnableLibFuzzer",
5370 Value: val?.ToString(),
5371 Setter: '=',
5372 Meta: new(
5373 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5374 AllowMultiple: false
5375 )
5376 ));
5377 }
5378 return (UbtConfig) this;
5379 }
5380
5381
5382/// <summary>
5383/// Whether to globally disable calling dump_syms
5384/// </summary>
5385 public virtual UbtConfig NoDumpSyms(bool? val = null)
5386 {
5387 if (true)
5388 {
5389 AppendArgument(new UnrealToolArgument(
5390 "-NoDumpSyms",
5391 Value: val?.ToString(),
5392 Setter: '=',
5393 Meta: new(
5394 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5395 AllowMultiple: false
5396 )
5397 ));
5398 }
5399 return (UbtConfig) this;
5400 }
5401
5402
5403/// <summary>
5404/// Version of the toolchain to use on Windows platform when a non-msvc Compiler is in use, to locate include paths etc.
5405/// </summary>
5406 public virtual UbtConfig VCToolchain(WindowsCompiler? val = null)
5407 {
5408 if (true)
5409 {
5410 AppendArgument(new UnrealToolArgument(
5411 "-VCToolchain",
5412 Value: val?.ToString(),
5413 Setter: '=',
5414 Meta: new(
5415 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5416 AllowMultiple: false
5417 )
5418 ));
5419 }
5420 return (UbtConfig) this;
5421 }
5422
5423
5424/// <summary>
5425/// If -PGOOptimize is specified but the linker flags have changed since the last -PGOProfile, this will emit a warning and build without PGO instead of failing during link with LNK1268.
5426/// </summary>
5427 public virtual UbtConfig IgnoreStalePGOData(bool? val = null)
5428 {
5429 if (true)
5430 {
5431 AppendArgument(new UnrealToolArgument(
5432 "-IgnoreStalePGOData",
5433 Value: val?.ToString(),
5434 Setter: '=',
5435 Meta: new(
5436 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5437 AllowMultiple: false
5438 )
5439 ));
5440 }
5441 return (UbtConfig) this;
5442 }
5443
5444
5445/// <summary>
5446/// If specified along with -PGOProfile, prevent the usage of extra counters. Please note that by default /FASTGENPROFILE doesnt use extra counters
5447/// </summary>
5448/// <seealso href="link">https://learn.microsoft.com/en-us/cpp/build/reference/genprofile-fastgenprofile-generate-profiling-instrumented-build</seealso>
5449 public virtual UbtConfig PGONoExtraCounters(bool? val = null)
5450 {
5451 if (true)
5452 {
5453 AppendArgument(new UnrealToolArgument(
5454 "-PGONoExtraCounters",
5455 Value: val?.ToString(),
5456 Setter: '=',
5457 Meta: new(
5458 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5459 AllowMultiple: false
5460 )
5461 ));
5462 }
5463 return (UbtConfig) this;
5464 }
5465
5466
5467/// <summary>
5468/// The specific msvc toolchain version to use if the compiler is not msvc. This may be a specific version number (for example, "14.13.26128"), the string "Latest" to select the newest available version, or
5469/// the string "Preview" to select the newest available preview version. By default, and if it is available, we use the toolchain version indicated by
5470/// WindowsPlatform.DefaultToolChainVersion (otherwise, we use the latest version).
5471/// </summary>
5472 public virtual UbtConfig VCToolchainVersion(object val = null)
5473 {
5474 if (true)
5475 {
5476 AppendArgument(new UnrealToolArgument(
5477 "-VCToolchainVersion",
5478 Value: val?.ToString(),
5479 Setter: '=',
5480 Meta: new(
5481 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5482 AllowMultiple: false
5483 )
5484 ));
5485 }
5486 return (UbtConfig) this;
5487 }
5488
5489
5490/// <summary>
5491/// True if /fastfail should be passed to the msvc compiler and linker
5492/// </summary>
5493 public virtual UbtConfig VCFastFail(bool? val = null)
5494 {
5495 if (true)
5496 {
5497 AppendArgument(new UnrealToolArgument(
5498 "-VCFastFail",
5499 Value: val?.ToString(),
5500 Setter: '=',
5501 Meta: new(
5502 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5503 AllowMultiple: false
5504 )
5505 ));
5506 }
5507 return (UbtConfig) this;
5508 }
5509
5510
5511/// <summary>
5512/// The specific Windows SDK version to use. This may be a specific version number (for example, "8.1", "10.0" or "10.0.10150.0"), or the string "Latest", to select the newest available version.
5513/// By default, and if it is available, we use the Windows SDK version indicated by WindowsPlatform.DefaultWindowsSdkVersion (otherwise, we use the latest version).
5514/// </summary>
5515 public virtual UbtConfig WindowsSDKVersion(object val = null)
5516 {
5517 if (true)
5518 {
5519 AppendArgument(new UnrealToolArgument(
5520 "-WindowsSDKVersion",
5521 Value: val?.ToString(),
5522 Setter: '=',
5523 Meta: new(
5524 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5525 AllowMultiple: false
5526 )
5527 ));
5528 }
5529 return (UbtConfig) this;
5530 }
5531
5532
5533/// <summary>
5534/// Whether .sarif files containing errors and warnings are written alongside each .obj, if supported
5535/// </summary>
5536 public virtual UbtConfig Sarif(bool? val = null)
5537 {
5538 if (true)
5539 {
5540 AppendArgument(new UnrealToolArgument(
5541 "-Sarif",
5542 Value: val?.ToString(),
5543 Setter: '=',
5544 Meta: new(
5545 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4,
5546 AllowMultiple: false
5547 )
5548 ));
5549 }
5550 return (UbtConfig) this;
5551 }
5552
5553
5554/// <summary>
5555/// Specify an alternate location for the PDB file. This option does not change the location of the generated PDB file,
5556/// it changes the name that is embedded into the executable. Path can contain %_PDB% which will be expanded to the original
5557/// PDB file name of the target, without the directory.
5558/// See https://learn.microsoft.com/en-us/cpp/build/reference/pdbaltpath-use-alternate-pdb-path
5559/// </summary>
5560 public virtual UbtConfig PdbAltPath(object val = null)
5561 {
5562 if (true)
5563 {
5564 AppendArgument(new UnrealToolArgument(
5565 "-PdbAltPath",
5566 Value: val?.ToString(),
5567 Setter: '=',
5568 Meta: new(
5569 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5570 AllowMultiple: false
5571 )
5572 ));
5573 }
5574 return (UbtConfig) this;
5575 }
5576
5577
5578/// <summary>
5579/// Create a workspace file for use with VS Code extension that communicates directly with UBT.
5580/// </summary>
5581 public virtual UbtConfig UseVSCodeExtension(bool? val = null)
5582 {
5583 if (true)
5584 {
5585 AppendArgument(new UnrealToolArgument(
5586 "-UseVSCodeExtension",
5587 Value: val?.ToString(),
5588 Setter: '=',
5589 Meta: new(
5590 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5591 AllowMultiple: false
5592 )
5593 ));
5594 }
5595 return (UbtConfig) this;
5596 }
5597
5598
5599/// <summary>
5600/// Whether the UnrealBuildAccelerator executor will be used.
5601/// </summary>
5602 public virtual UbtConfig UBA(bool present = true)
5603 {
5604 if (present)
5605 {
5606 AppendArgument(new UnrealToolArgument(
5607 "-UBA",
5608 Value: null,
5609 Setter: '=',
5610 Meta: new(
5611 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5612 AllowMultiple: false
5613 )
5614 ));
5615 }
5616 return (UbtConfig) this;
5617 }
5618
5619
5620/// <summary>
5621/// Whether the UnrealBuildAccelerator executor will be used.
5622/// </summary>
5623 public virtual UbtConfig NoUBA(bool present = true)
5624 {
5625 if (present)
5626 {
5627 AppendArgument(new UnrealToolArgument(
5628 "-NoUBA",
5629 Value: null,
5630 Setter: '=',
5631 Meta: new(
5632 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5633 AllowMultiple: false
5634 )
5635 ));
5636 }
5637 return (UbtConfig) this;
5638 }
5639
5640
5641/// <summary>
5642/// Whether the UnrealBuildAccelerator (local only) executor will be used.
5643/// </summary>
5644 public virtual UbtConfig UBALocal(bool present = true)
5645 {
5646 if (present)
5647 {
5648 AppendArgument(new UnrealToolArgument(
5649 "-UBALocal",
5650 Value: null,
5651 Setter: '=',
5652 Meta: new(
5653 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5,
5654 AllowMultiple: false
5655 )
5656 ));
5657 }
5658 return (UbtConfig) this;
5659 }
5660
5661
5662/// <summary>
5663/// Whether the UnrealBuildAccelerator (local only) executor will be used.
5664/// </summary>
5665 public virtual UbtConfig NoUBALocal(bool present = true)
5666 {
5667 if (present)
5668 {
5669 AppendArgument(new UnrealToolArgument(
5670 "-NoUBALocal",
5671 Value: null,
5672 Setter: '=',
5673 Meta: new(
5674 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5,
5675 AllowMultiple: false
5676 )
5677 ));
5678 }
5679 return (UbtConfig) this;
5680 }
5681
5682
5683/// <summary>
5684/// When building a foreign plugin, whether to build plugins it depends on as well.
5685/// </summary>
5686 public virtual UbtConfig BuildDependantPlugins(bool? val = null)
5687 {
5688 if (true)
5689 {
5690 AppendArgument(new UnrealToolArgument(
5691 "-BuildDependantPlugins",
5692 Value: val?.ToString(),
5693 Setter: '=',
5694 Meta: new(
5695 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5696 AllowMultiple: false
5697 )
5698 ));
5699 }
5700 return (UbtConfig) this;
5701 }
5702
5703
5704/// <summary>
5705/// Extra subdirectory to load config files out of, for making multiple types of builds with the same platform
5706/// This will get baked into the game executable as CUSTOM_CONFIG and used when staging to filter files and settings
5707/// </summary>
5708 public virtual UbtConfig CustomConfig(object val = null)
5709 {
5710 if (true)
5711 {
5712 AppendArgument(new UnrealToolArgument(
5713 "-CustomConfig",
5714 Value: val?.ToString(),
5715 Setter: '=',
5716 Meta: new(
5717 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5718 AllowMultiple: false
5719 )
5720 ));
5721 }
5722 return (UbtConfig) this;
5723 }
5724
5725
5726/// <summary>
5727/// Whether to use the BPVM to run Verse.
5728/// </summary>
5729 public virtual UbtConfig NoUseVerseBPVM(bool present = true)
5730 {
5731 if (present)
5732 {
5733 AppendArgument(new UnrealToolArgument(
5734 "-NoUseVerseBPVM",
5735 Value: null,
5736 Setter: '=',
5737 Meta: new(
5738 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5739 AllowMultiple: false
5740 )
5741 ));
5742 }
5743 return (UbtConfig) this;
5744 }
5745
5746
5747/// <summary>
5748/// Whether to use the BPVM to run Verse.
5749/// </summary>
5750 public virtual UbtConfig UseVerseBPVM(bool present = true)
5751 {
5752 if (present)
5753 {
5754 AppendArgument(new UnrealToolArgument(
5755 "-UseVerseBPVM",
5756 Value: null,
5757 Setter: '=',
5758 Meta: new(
5759 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5760 AllowMultiple: false
5761 )
5762 ));
5763 }
5764 return (UbtConfig) this;
5765 }
5766
5767
5768/// <summary>
5769/// Allows setting the FP semantics.
5770/// </summary>
5771 public virtual UbtConfig FPSemantics(FPSemanticsMode? val = null)
5772 {
5773 if (true)
5774 {
5775 AppendArgument(new UnrealToolArgument(
5776 "-FPSemantics",
5777 Value: val?.ToString(),
5778 Setter: '=',
5779 Meta: new(
5780 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5781 AllowMultiple: false
5782 )
5783 ));
5784 }
5785 return (UbtConfig) this;
5786 }
5787
5788
5789/// <summary>
5790/// How much debug info should be generated. See DebugInfoMode enum for more details
5791/// </summary>
5792 public virtual UbtConfig DebugInfo(DebugInfoMode? val = null)
5793 {
5794 if (true)
5795 {
5796 AppendArgument(new UnrealToolArgument(
5797 "-DebugInfo",
5798 Value: val?.ToString(),
5799 Setter: '=',
5800 Meta: new(
5801 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5802 AllowMultiple: false
5803 )
5804 ));
5805 }
5806 return (UbtConfig) this;
5807 }
5808
5809
5810/// <summary>
5811/// Modules that should have debug info disabled
5812/// </summary>
5813 public virtual UbtConfig DisableDebugInfoModules(params object[] values)
5814 {
5815 if (true)
5816 {
5817 AppendArgument(new UnrealToolArgument(
5818 "-DisableDebugInfoModules",
5819 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
5820 Setter: '=',
5821 Meta: new(
5822 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5823 AllowMultiple: true
5824 )
5825 ));
5826 }
5827 return (UbtConfig) this;
5828 }
5829
5830
5831/// <summary>
5832/// Plugins that should have debug info disabled
5833/// </summary>
5834 public virtual UbtConfig DisableDebugInfoPlugins(params object[] values)
5835 {
5836 if (true)
5837 {
5838 AppendArgument(new UnrealToolArgument(
5839 "-DisableDebugInfoPlugins",
5840 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
5841 Setter: '=',
5842 Meta: new(
5843 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5844 AllowMultiple: true
5845 )
5846 ));
5847 }
5848 return (UbtConfig) this;
5849 }
5850
5851
5852/// <summary>
5853/// True if only debug line number tables should be emitted in debug information for compilers that support doing so. Overrides TargetRules.DebugInfo
5854/// See https://clang.llvm.org/docs/UsersManual.html#cmdoption-gline-tables-only for more information
5855/// </summary>
5857 {
5858 if (true)
5859 {
5860 AppendArgument(new UnrealToolArgument(
5861 "-DebugInfoLineTablesOnly",
5862 Value: val?.ToString(),
5863 Setter: '=',
5864 Meta: new(
5865 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5866 AllowMultiple: false
5867 )
5868 ));
5869 }
5870 return (UbtConfig) this;
5871 }
5872
5873
5874/// <summary>
5875/// Modules that should emit line number tables instead of full debug information for compilers that support doing so. Overrides DisableDebugInfoModules
5876/// </summary>
5877 public virtual UbtConfig DebugInfoLineTablesOnlyModules(params object[] values)
5878 {
5879 if (true)
5880 {
5881 AppendArgument(new UnrealToolArgument(
5882 "-DebugInfoLineTablesOnlyModules",
5883 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
5884 Setter: '=',
5885 Meta: new(
5886 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5887 AllowMultiple: true
5888 )
5889 ));
5890 }
5891 return (UbtConfig) this;
5892 }
5893
5894
5895/// <summary>
5896/// Plugins that should emit line number tables instead of full debug information for compilers that support doing so. Overrides DisableDebugInfoPlugins
5897/// </summary>
5898 public virtual UbtConfig DebugInfoLineTablesOnlyPlugins(params object[] values)
5899 {
5900 if (true)
5901 {
5902 AppendArgument(new UnrealToolArgument(
5903 "-DebugInfoLineTablesOnlyPlugins",
5904 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
5905 Setter: '=',
5906 Meta: new(
5907 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5908 AllowMultiple: true
5909 )
5910 ));
5911 }
5912 return (UbtConfig) this;
5913 }
5914
5915
5916/// <summary>
5917/// The level of warnings to print when analyzing using PVS-Studio
5918/// </summary>
5919 public virtual UbtConfig StaticAnalyzerPVSPrintLevel(double? val = null)
5920 {
5921 if (true)
5922 {
5923 AppendArgument(new UnrealToolArgument(
5924 "-StaticAnalyzerPVSPrintLevel",
5925 Value: val?.ToString(),
5926 Setter: '=',
5927 Meta: new(
5928 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5929 AllowMultiple: false
5930 )
5931 ));
5932 }
5933 return (UbtConfig) this;
5934 }
5935
5936
5937/// <summary>
5938/// Only run static analysis against project modules, skipping engine modules
5939/// </summary>
5940/// <remarks>PVS-Studio: warnings that are disabled via Engine/Source/Runtime/Core/Public/Microsoft/MicrosoftPlatformCodeAnalysis.h will be reenabled</remarks>
5941 public virtual UbtConfig StaticAnalyzerProjectOnly(bool? val = null)
5942 {
5943 if (true)
5944 {
5945 AppendArgument(new UnrealToolArgument(
5946 "-StaticAnalyzerProjectOnly",
5947 Value: val?.ToString(),
5948 Setter: '=',
5949 Meta: new(
5950 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5951 AllowMultiple: false
5952 )
5953 ));
5954 }
5955 return (UbtConfig) this;
5956 }
5957
5958
5959/// <summary>
5960/// When enabled, generated source files will be analyzed
5961/// </summary>
5962 public virtual UbtConfig StaticAnalyzerIncludeGenerated(bool? val = null)
5963 {
5964 if (true)
5965 {
5966 AppendArgument(new UnrealToolArgument(
5967 "-StaticAnalyzerIncludeGenerated",
5968 Value: val?.ToString(),
5969 Setter: '=',
5970 Meta: new(
5971 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5972 AllowMultiple: false
5973 )
5974 ));
5975 }
5976 return (UbtConfig) this;
5977 }
5978
5979
5980/// <summary>
5981/// Will replace pch with ifc and use header units instead. This is an experimental and msvc-only feature
5982/// </summary>
5983 public virtual UbtConfig HeaderUnits(bool? val = null)
5984 {
5985 if (true)
5986 {
5987 AppendArgument(new UnrealToolArgument(
5988 "-HeaderUnits",
5989 Value: val?.ToString(),
5990 Setter: '=',
5991 Meta: new(
5992 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
5993 AllowMultiple: false
5994 )
5995 ));
5996 }
5997 return (UbtConfig) this;
5998 }
5999
6000
6001/// <summary>
6002/// A list of additional plugins which need to be included in this target. This allows referencing non-optional plugin modules
6003/// which cannot be disabled, and allows building against specific modules in program targets which do not fit the categories
6004/// in ModuleHostType.
6005/// </summary>
6006 public virtual UbtConfig AdditionalPlugins(params object[] values)
6007 {
6008 if (true)
6009 {
6010 AppendArgument(new UnrealToolArgument(
6011 "-AdditionalPlugins",
6012 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
6013 Setter: '=',
6014 Meta: new(
6015 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6016 AllowMultiple: true
6017 )
6018 ));
6019 }
6020 return (UbtConfig) this;
6021 }
6022
6023
6024/// <summary>
6025/// Additional plugins that should be included for this target if they are found.
6026/// </summary>
6027 public virtual UbtConfig OptionalPlugins(params object[] values)
6028 {
6029 if (true)
6030 {
6031 AppendArgument(new UnrealToolArgument(
6032 "-OptionalPlugins",
6033 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
6034 Setter: '=',
6035 Meta: new(
6036 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6037 AllowMultiple: true
6038 )
6039 ));
6040 }
6041 return (UbtConfig) this;
6042 }
6043
6044
6045/// <summary>
6046/// Number of second of no completed actions to trigger an action stall report.
6047/// If zero, stall reports will not be enabled.
6048/// </summary>
6049 public virtual UbtConfig ActionStallReportTime(double? val = null)
6050 {
6051 if (true)
6052 {
6053 AppendArgument(new UnrealToolArgument(
6054 "-ActionStallReportTime",
6055 Value: val?.ToString(),
6056 Setter: '=',
6057 Meta: new(
6058 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6059 AllowMultiple: false
6060 )
6061 ));
6062 }
6063 return (UbtConfig) this;
6064 }
6065
6066
6067/// <summary>
6068/// When set to true, UBA will not use any remote help
6069/// </summary>
6070 public virtual UbtConfig UBADisableRemote(bool? val = null)
6071 {
6072 if (true)
6073 {
6074 AppendArgument(new UnrealToolArgument(
6075 "-UBADisableRemote",
6076 Value: val?.ToString(),
6077 Setter: '=',
6078 Meta: new(
6079 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6080 AllowMultiple: false
6081 )
6082 ));
6083 }
6084 return (UbtConfig) this;
6085 }
6086
6087
6088/// <summary>
6089/// When set to true, UBA will force all actions that can be built remotely to be built remotely. This will hang if there are no remote agents available
6090/// </summary>
6091 public virtual UbtConfig UBAForceRemote(bool? val = null)
6092 {
6093 if (true)
6094 {
6095 AppendArgument(new UnrealToolArgument(
6096 "-UBAForceRemote",
6097 Value: val?.ToString(),
6098 Setter: '=',
6099 Meta: new(
6100 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6101 AllowMultiple: false
6102 )
6103 ));
6104 }
6105 return (UbtConfig) this;
6106 }
6107
6108
6109/// <summary>When set to true, actions that fail locally with UBA will be retried without UBA.
6110/// When set to true, all actions that fail locally with UBA will be retried without UBA.</summary>
6111 public virtual UbtConfig UBAForcedRetry(bool? val = null)
6112 {
6113 if (true)
6114 {
6115 AppendArgument(new UnrealToolArgument(
6116 "-UBAForcedRetry",
6117 Value: val?.ToString(),
6118 Setter: '=',
6119 Meta: new(
6120 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6121 AllowMultiple: false
6122 )
6123 ));
6124 }
6125 return (UbtConfig) this;
6126 }
6127
6128
6129/// <summary>
6130/// When set to true, all errors and warnings from UBA will be output at the appropriate severity level to the log (rather than being output as 'information' and attempting to continue regardless).
6131/// </summary>
6132 public virtual UbtConfig UBAStrict(bool? val = null)
6133 {
6134 if (true)
6135 {
6136 AppendArgument(new UnrealToolArgument(
6137 "-UBAStrict",
6138 Value: val?.ToString(),
6139 Setter: '=',
6140 Meta: new(
6141 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6142 AllowMultiple: false
6143 )
6144 ));
6145 }
6146 return (UbtConfig) this;
6147 }
6148
6149
6150/// <summary>
6151/// If UBA should store cas compressed or raw
6152/// </summary>
6153 public virtual UbtConfig UBAStoreRaw(bool? val = null)
6154 {
6155 if (true)
6156 {
6157 AppendArgument(new UnrealToolArgument(
6158 "-UBAStoreRaw",
6159 Value: val?.ToString(),
6160 Setter: '=',
6161 Meta: new(
6162 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6163 AllowMultiple: false
6164 )
6165 ));
6166 }
6167 return (UbtConfig) this;
6168 }
6169
6170
6171/// <summary>
6172/// If UBA should distribute linking to remote workers. This needs bandwidth but can be an optimization
6173/// </summary>
6174 public virtual UbtConfig UBALinkRemote(bool? val = null)
6175 {
6176 if (true)
6177 {
6178 AppendArgument(new UnrealToolArgument(
6179 "-UBALinkRemote",
6180 Value: val?.ToString(),
6181 Setter: '=',
6182 Meta: new(
6183 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6184 AllowMultiple: false
6185 )
6186 ));
6187 }
6188 return (UbtConfig) this;
6189 }
6190
6191
6192/// <summary>
6193/// The amount of gigabytes UBA is allowed to use to store workset and cached data. It is a good idea to have this &gt;10gb
6194/// </summary>
6195 public virtual UbtConfig UBAStoreCapacityGb(double? val = null)
6196 {
6197 if (true)
6198 {
6199 AppendArgument(new UnrealToolArgument(
6200 "-UBAStoreCapacityGb",
6201 Value: val?.ToString(),
6202 Setter: '=',
6203 Meta: new(
6204 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6205 AllowMultiple: false
6206 )
6207 ));
6208 }
6209 return (UbtConfig) this;
6210 }
6211
6212
6213/// <summary>
6214/// Max number of worker threads that can handle messages from remotes.
6215/// </summary>
6216 public virtual UbtConfig UBAMaxWorkers(double? val = null)
6217 {
6218 if (true)
6219 {
6220 AppendArgument(new UnrealToolArgument(
6221 "-UBAMaxWorkers",
6222 Value: val?.ToString(),
6223 Setter: '=',
6224 Meta: new(
6225 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6226 AllowMultiple: false
6227 )
6228 ));
6229 }
6230 return (UbtConfig) this;
6231 }
6232
6233
6234/// <summary>
6235/// Max size of each message sent from server to client
6236/// </summary>
6237 public virtual UbtConfig UBASendSize(double? val = null)
6238 {
6239 if (true)
6240 {
6241 AppendArgument(new UnrealToolArgument(
6242 "-UBASendSize",
6243 Value: val?.ToString(),
6244 Setter: '=',
6245 Meta: new(
6246 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6247 AllowMultiple: false
6248 )
6249 ));
6250 }
6251 return (UbtConfig) this;
6252 }
6253
6254
6255/// <summary>
6256/// Which ip UBA server should listen to for connections
6257/// </summary>
6258 public virtual UbtConfig UBAHost(object val = null)
6259 {
6260 if (true)
6261 {
6262 AppendArgument(new UnrealToolArgument(
6263 "-UBAHost",
6264 Value: val?.ToString(),
6265 Setter: '=',
6266 Meta: new(
6267 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6268 AllowMultiple: false
6269 )
6270 ));
6271 }
6272 return (UbtConfig) this;
6273 }
6274
6275
6276/// <summary>
6277/// Which port UBA server should listen to for connections.
6278/// </summary>
6279 public virtual UbtConfig UBAPort(double? val = null)
6280 {
6281 if (true)
6282 {
6283 AppendArgument(new UnrealToolArgument(
6284 "-UBAPort",
6285 Value: val?.ToString(),
6286 Setter: '=',
6287 Meta: new(
6288 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6289 AllowMultiple: false
6290 )
6291 ));
6292 }
6293 return (UbtConfig) this;
6294 }
6295
6296
6297/// <summary>
6298/// Which directory to store files for UBA.
6299/// </summary>
6300 public virtual UbtConfig UBARootDir(object val = null)
6301 {
6302 if (true)
6303 {
6304 AppendArgument(new UnrealToolArgument(
6305 "-UBARootDir",
6306 Value: val?.ToString(),
6307 Setter: '=',
6308 Meta: new(
6309 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6310 AllowMultiple: false
6311 )
6312 ));
6313 }
6314 return (UbtConfig) this;
6315 }
6316
6317
6318/// <summary>
6319/// Use Quic protocol instead of Tcp (experimental)
6320/// </summary>
6321 public virtual UbtConfig UBAQuic(bool present = true)
6322 {
6323 if (present)
6324 {
6325 AppendArgument(new UnrealToolArgument(
6326 "-UBAQuic",
6327 Value: null,
6328 Setter: '=',
6329 Meta: new(
6330 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6331 AllowMultiple: false
6332 )
6333 ));
6334 }
6335 return (UbtConfig) this;
6336 }
6337
6338
6339/// <summary>
6340/// Enable logging of UBA processes
6341/// </summary>
6342 public virtual UbtConfig UBALog(bool present = true)
6343 {
6344 if (present)
6345 {
6346 AppendArgument(new UnrealToolArgument(
6347 "-UBALog",
6348 Value: null,
6349 Setter: '=',
6350 Meta: new(
6351 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6352 AllowMultiple: false
6353 )
6354 ));
6355 }
6356 return (UbtConfig) this;
6357 }
6358
6359
6360/// <summary>
6361/// Prints summary of UBA stats at end of build
6362/// </summary>
6363 public virtual UbtConfig UBAPrintSummary(bool present = true)
6364 {
6365 if (present)
6366 {
6367 AppendArgument(new UnrealToolArgument(
6368 "-UBAPrintSummary",
6369 Value: null,
6370 Setter: '=',
6371 Meta: new(
6372 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6373 AllowMultiple: false
6374 )
6375 ));
6376 }
6377 return (UbtConfig) this;
6378 }
6379
6380
6381/// <summary>
6382/// Launch visualizer application which shows build progress
6383/// </summary>
6384 public virtual UbtConfig UBAVisualizer(bool present = true)
6385 {
6386 if (present)
6387 {
6388 AppendArgument(new UnrealToolArgument(
6389 "-UBAVisualizer",
6390 Value: null,
6391 Setter: '=',
6392 Meta: new(
6393 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6394 AllowMultiple: false
6395 )
6396 ));
6397 }
6398 return (UbtConfig) this;
6399 }
6400
6401
6402/// <summary>
6403/// Resets the cas cache
6404/// </summary>
6405 public virtual UbtConfig UBAResetCas(bool present = true)
6406 {
6407 if (present)
6408 {
6409 AppendArgument(new UnrealToolArgument(
6410 "-UBAResetCas",
6411 Value: null,
6412 Setter: '=',
6413 Meta: new(
6414 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6415 AllowMultiple: false
6416 )
6417 ));
6418 }
6419 return (UbtConfig) this;
6420 }
6421
6422
6423/// <summary>
6424/// Provide custom path for trace output file
6425/// </summary>
6426 public virtual UbtConfig UBATraceOutputFile(object val = null)
6427 {
6428 if (true)
6429 {
6430 AppendArgument(new UnrealToolArgument(
6431 "-UBATraceOutputFile",
6432 Value: val?.ToString(),
6433 Setter: '=',
6434 Meta: new(
6435 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6436 AllowMultiple: false
6437 )
6438 ));
6439 }
6440 return (UbtConfig) this;
6441 }
6442
6443
6444/// <summary>
6445/// Add verbose details to the UBA trace
6446/// </summary>
6447 public virtual UbtConfig UBADetailedTrace(bool present = true)
6448 {
6449 if (present)
6450 {
6451 AppendArgument(new UnrealToolArgument(
6452 "-UBADetailedTrace",
6453 Value: null,
6454 Setter: '=',
6455 Meta: new(
6456 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6457 AllowMultiple: false
6458 )
6459 ));
6460 }
6461 return (UbtConfig) this;
6462 }
6463
6464
6465/// <summary>
6466/// Disable UBA waiting on available memory before spawning new processes
6467/// </summary>
6468 public virtual UbtConfig UBADisableWaitOnMem(bool present = true)
6469 {
6470 if (present)
6471 {
6472 AppendArgument(new UnrealToolArgument(
6473 "-UBADisableWaitOnMem",
6474 Value: null,
6475 Setter: '=',
6476 Meta: new(
6477 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6478 AllowMultiple: false
6479 )
6480 ));
6481 }
6482 return (UbtConfig) this;
6483 }
6484
6485
6486/// <summary>
6487/// Let UBA kill running processes when close to out of memory
6488/// </summary>
6489 public virtual UbtConfig UBAAllowKillOnMem(bool present = true)
6490 {
6491 if (present)
6492 {
6493 AppendArgument(new UnrealToolArgument(
6494 "-UBAAllowKillOnMem",
6495 Value: null,
6496 Setter: '=',
6497 Meta: new(
6498 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6499 AllowMultiple: false
6500 )
6501 ));
6502 }
6503 return (UbtConfig) this;
6504 }
6505
6506
6507/// <summary>
6508/// Threshold for when executor should output logging for the process. Defaults to never
6509/// </summary>
6510 public virtual UbtConfig UBAOutputStatsThresholdMs(double? val = null)
6511 {
6512 if (true)
6513 {
6514 AppendArgument(new UnrealToolArgument(
6515 "-UBAOutputStatsThresholdMs",
6516 Value: val?.ToString(),
6517 Setter: '=',
6518 Meta: new(
6519 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5,
6520 AllowMultiple: false
6521 )
6522 ));
6523 }
6524 return (UbtConfig) this;
6525 }
6526
6527
6528/// <summary>
6529/// Skip writing intermediate and output files to disk. Useful for validation builds where we don't need the output
6530/// </summary>
6531 public virtual UbtConfig UBANoWrite(bool present = true)
6532 {
6533 if (present)
6534 {
6535 AppendArgument(new UnrealToolArgument(
6536 "-UBANoWrite",
6537 Value: null,
6538 Setter: '=',
6539 Meta: new(
6540 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6541 AllowMultiple: false
6542 )
6543 ));
6544 }
6545 return (UbtConfig) this;
6546 }
6547
6548
6549/// <summary>
6550/// Set to true to disable mimalloc and detouring of memory allocations.
6551/// </summary>
6552 public virtual UbtConfig UBANoCustomMalloc(bool present = true)
6553 {
6554 if (present)
6555 {
6556 AppendArgument(new UnrealToolArgument(
6557 "-UBANoCustomMalloc",
6558 Value: null,
6559 Setter: '=',
6560 Meta: new(
6561 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6562 AllowMultiple: false
6563 )
6564 ));
6565 }
6566 return (UbtConfig) this;
6567 }
6568
6569
6570/// <summary>
6571/// The zone to use for UBA.
6572/// </summary>
6573 public virtual UbtConfig UBAZone(object val = null)
6574 {
6575 if (true)
6576 {
6577 AppendArgument(new UnrealToolArgument(
6578 "-UBAZone",
6579 Value: val?.ToString(),
6580 Setter: '=',
6581 Meta: new(
6582 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6583 AllowMultiple: false
6584 )
6585 ));
6586 }
6587 return (UbtConfig) this;
6588 }
6589
6590
6591/// <summary>
6592/// Set to true to enable encryption when transferring files over the network.
6593/// </summary>
6594 public virtual UbtConfig UBACrypto(bool present = true)
6595 {
6596 if (present)
6597 {
6598 AppendArgument(new UnrealToolArgument(
6599 "-UBACrypto",
6600 Value: null,
6601 Setter: '=',
6602 Meta: new(
6603 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6604 AllowMultiple: false
6605 )
6606 ));
6607 }
6608 return (UbtConfig) this;
6609 }
6610
6611
6612/// <summary>
6613/// Set to true to provide known inputs to processes that are run remote. This is an experimental feature to speed up build times when ping is higher
6614/// </summary>
6615 public virtual UbtConfig UBAUseKnownInputs(bool present = true)
6616 {
6617 if (present)
6618 {
6619 AppendArgument(new UnrealToolArgument(
6620 "-UBAUseKnownInputs",
6621 Value: null,
6622 Setter: '=',
6623 Meta: new(
6624 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6625 AllowMultiple: false
6626 )
6627 ));
6628 }
6629 return (UbtConfig) this;
6630 }
6631
6632
6633/// <summary>
6634/// Write yaml file with all actions that are queued for build. This can be used to replay using "UbaCli.exe local file.yaml"
6635/// </summary>
6636 public virtual UbtConfig UBAActionsOutputFile(object val = null)
6637 {
6638 if (true)
6639 {
6640 AppendArgument(new UnrealToolArgument(
6641 "-UBAActionsOutputFile",
6642 Value: val?.ToString(),
6643 Setter: '=',
6644 Meta: new(
6645 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6646 AllowMultiple: false
6647 )
6648 ));
6649 }
6650 return (UbtConfig) this;
6651 }
6652
6653
6654/// <summary>
6655/// Set to true to see more info about what is happening inside uba and also log output from agents
6656/// </summary>
6657 public virtual UbtConfig UBADetailedLog(bool present = true)
6658 {
6659 if (present)
6660 {
6661 AppendArgument(new UnrealToolArgument(
6662 "-UBADetailedLog",
6663 Value: null,
6664 Setter: '=',
6665 Meta: new(
6666 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6667 AllowMultiple: false
6668 )
6669 ));
6670 }
6671 return (UbtConfig) this;
6672 }
6673
6674
6675/// <summary>
6676/// Uri of the Horde server
6677/// </summary>
6678 public virtual UbtConfig UBAHorde(object val = null)
6679 {
6680 if (true)
6681 {
6682 AppendArgument(new UnrealToolArgument(
6683 "-UBAHorde",
6684 Value: val?.ToString(),
6685 Setter: '=',
6686 Meta: new(
6687 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6688 AllowMultiple: false
6689 )
6690 ));
6691 }
6692 return (UbtConfig) this;
6693 }
6694
6695
6696/// <summary>Uri of the Horde server
6697/// Auth token for the Horde server</summary>
6698 public virtual UbtConfig UBAHordeToken(object val = null)
6699 {
6700 if (true)
6701 {
6702 AppendArgument(new UnrealToolArgument(
6703 "-UBAHordeToken",
6704 Value: val?.ToString(),
6705 Setter: '=',
6706 Meta: new(
6707 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6708 AllowMultiple: false
6709 )
6710 ));
6711 }
6712 return (UbtConfig) this;
6713 }
6714
6715
6716/// <summary>
6717/// OIDC id for the login to use
6718/// </summary>
6719 public virtual UbtConfig UBAHordeOidc(object val = null)
6720 {
6721 if (true)
6722 {
6723 AppendArgument(new UnrealToolArgument(
6724 "-UBAHordeOidc",
6725 Value: val?.ToString(),
6726 Setter: '=',
6727 Meta: new(
6728 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6729 AllowMultiple: false
6730 )
6731 ));
6732 }
6733 return (UbtConfig) this;
6734 }
6735
6736
6737/// <summary>
6738/// Pool for the Horde agent to assign, only used for commandline override
6739/// </summary>
6740 public virtual UbtConfig UBAHordePool(object val = null)
6741 {
6742 if (true)
6743 {
6744 AppendArgument(new UnrealToolArgument(
6745 "-UBAHordePool",
6746 Value: val?.ToString(),
6747 Setter: '=',
6748 Meta: new(
6749 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6750 AllowMultiple: false
6751 )
6752 ));
6753 }
6754 return (UbtConfig) this;
6755 }
6756
6757
6758/// <summary>
6759/// Requirements for the Horde agent to assign
6760/// </summary>
6761 public virtual UbtConfig UBAHordeRequirements(object val = null)
6762 {
6763 if (true)
6764 {
6765 AppendArgument(new UnrealToolArgument(
6766 "-UBAHordeRequirements",
6767 Value: val?.ToString(),
6768 Setter: '=',
6769 Meta: new(
6770 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6771 AllowMultiple: false
6772 )
6773 ));
6774 }
6775 return (UbtConfig) this;
6776 }
6777
6778
6779/// <summary>
6780/// Which ip UBA server should give to agents. This will invert so host listens and agents connect
6781/// </summary>
6782 public virtual UbtConfig UBAHordeHost(object val = null)
6783 {
6784 if (true)
6785 {
6786 AppendArgument(new UnrealToolArgument(
6787 "-UBAHordeHost",
6788 Value: val?.ToString(),
6789 Setter: '=',
6790 Meta: new(
6791 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6792 AllowMultiple: false
6793 )
6794 ));
6795 }
6796 return (UbtConfig) this;
6797 }
6798
6799
6800/// <summary>
6801/// Max cores allowed to be used by build session
6802/// </summary>
6803 public virtual UbtConfig UBAHordeMaxCores(double? val = null)
6804 {
6805 if (true)
6806 {
6807 AppendArgument(new UnrealToolArgument(
6808 "-UBAHordeMaxCores",
6809 Value: val?.ToString(),
6810 Setter: '=',
6811 Meta: new(
6812 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6813 AllowMultiple: false
6814 )
6815 ));
6816 }
6817 return (UbtConfig) this;
6818 }
6819
6820
6821/// <summary>
6822/// How long UBT should wait to ask for help. Useful in build configs where machine can delay remote work and still get same wall time results (pch dependencies etc)
6823/// </summary>
6824 public virtual UbtConfig UBAHordeDelay(double? val = null)
6825 {
6826 if (true)
6827 {
6828 AppendArgument(new UnrealToolArgument(
6829 "-UBAHordeDelay",
6830 Value: val?.ToString(),
6831 Setter: '=',
6832 Meta: new(
6833 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6834 AllowMultiple: false
6835 )
6836 ));
6837 }
6838 return (UbtConfig) this;
6839 }
6840
6841
6842/// <summary>
6843/// Allow use of Wine. Only applicable to Horde agents running Linux. Can still be ignored if Wine executable is not set on agent.
6844/// </summary>
6845 public virtual UbtConfig UBAHordeAllowWine(bool present = true)
6846 {
6847 if (present)
6848 {
6849 AppendArgument(new UnrealToolArgument(
6850 "-UBAHordeAllowWine",
6851 Value: null,
6852 Setter: '=',
6853 Meta: new(
6854 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6855 AllowMultiple: false
6856 )
6857 ));
6858 }
6859 return (UbtConfig) this;
6860 }
6861
6862
6863/// <summary>
6864/// Connection mode for agent/compute communication
6865/// <see cref="ConnectionMode" /> for valid modes.
6866/// </summary>
6867 public virtual UbtConfig UBAHordeConnectionMode(object val = null)
6868 {
6869 if (true)
6870 {
6871 AppendArgument(new UnrealToolArgument(
6872 "-UBAHordeConnectionMode",
6873 Value: val?.ToString(),
6874 Setter: '=',
6875 Meta: new(
6876 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6877 AllowMultiple: false
6878 )
6879 ));
6880 }
6881 return (UbtConfig) this;
6882 }
6883
6884
6885/// <summary>
6886/// Encryption to use for agent/compute communication. Note that UBA agent uses its own encryption.
6887/// <see cref="Encryption" /> for valid modes.
6888/// </summary>
6889 public virtual UbtConfig UBAHordeEncryption(object val = null)
6890 {
6891 if (true)
6892 {
6893 AppendArgument(new UnrealToolArgument(
6894 "-UBAHordeEncryption",
6895 Value: val?.ToString(),
6896 Setter: '=',
6897 Meta: new(
6898 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6899 AllowMultiple: false
6900 )
6901 ));
6902 }
6903 return (UbtConfig) this;
6904 }
6905
6906
6907/// <summary>
6908/// Sentry URL to send box data to. Optional.
6909/// </summary>
6910 public virtual UbtConfig UBASentryUrl(object val = null)
6911 {
6912 if (true)
6913 {
6914 AppendArgument(new UnrealToolArgument(
6915 "-UBASentryUrl",
6916 Value: val?.ToString(),
6917 Setter: '=',
6918 Meta: new(
6919 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6920 AllowMultiple: false
6921 )
6922 ));
6923 }
6924 return (UbtConfig) this;
6925 }
6926
6927
6928/// <summary>
6929/// Disable horde all together
6930/// </summary>
6931 public virtual UbtConfig UBADisableHorde(bool? val = null)
6932 {
6933 if (true)
6934 {
6935 AppendArgument(new UnrealToolArgument(
6936 "-UBADisableHorde",
6937 Value: val?.ToString(),
6938 Setter: '=',
6939 Meta: new(
6940 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6941 AllowMultiple: false
6942 )
6943 ));
6944 }
6945 return (UbtConfig) this;
6946 }
6947
6948
6949/// <summary>
6950/// Forcing bDontBundleLibrariesInAPK to "true" or "false" ignoring any other option.
6951/// </summary>
6952 public virtual UbtConfig ForceDontBundleLibrariesInAPK(bool? val = null)
6953 {
6954 if (true)
6955 {
6956 AppendArgument(new UnrealToolArgument(
6957 "-ForceDontBundleLibrariesInAPK",
6958 Value: val?.ToString(),
6959 Setter: '=',
6960 Meta: new(
6961 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6962 AllowMultiple: false
6963 )
6964 ));
6965 }
6966 return (UbtConfig) this;
6967 }
6968
6969
6970/// <summary>
6971/// Adds LD_PRELOAD'ed .so to capture all malloc/free/etc calls to libc.so and route them to our memory tracing.
6972/// </summary>
6973 public virtual UbtConfig ScudoMemoryTracing(bool present = true)
6974 {
6975 if (present)
6976 {
6977 AppendArgument(new UnrealToolArgument(
6978 "-ScudoMemoryTracing",
6979 Value: null,
6980 Setter: '=',
6981 Meta: new(
6982 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
6983 AllowMultiple: false
6984 )
6985 ));
6986 }
6987 return (UbtConfig) this;
6988 }
6989
6990
6991/// <summary>
6992/// If enabled will set the ProductVersion embeded in windows executables and dlls to contain BUILT_FROM_CHANGELIST and BuildVersion
6993/// Enabled by default for all precompiled and Shipping configurations. Regardless of this setting, the versions from Build.version will be available via the BuildSettings module
6994/// Note: Embedding these versions will cause resource files to be recompiled whenever changelist is updated which will cause binaries to relink
6995/// </summary>
6996 public virtual UbtConfig SetResourceVersions(bool? val = null)
6997 {
6998 if (true)
6999 {
7000 AppendArgument(new UnrealToolArgument(
7001 "-SetResourceVersions",
7002 Value: val?.ToString(),
7003 Setter: '=',
7004 Meta: new(
7005 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7006 AllowMultiple: false
7007 )
7008 ));
7009 }
7010 return (UbtConfig) this;
7011 }
7012
7013
7014/// <summary>
7015/// If enabled will set the ProductVersion embeded in windows executables and dlls to contain BUILT_FROM_CHANGELIST and BuildVersion
7016/// Enabled by default for all precompiled and Shipping configurations. Regardless of this setting, the versions from Build.version will be available via the BuildSettings module
7017/// Note: Embedding these versions will cause resource files to be recompiled whenever changelist is updated which will cause binaries to relink
7018/// </summary>
7019 public virtual UbtConfig NoSetResourceVersions(bool present = true)
7020 {
7021 if (present)
7022 {
7023 AppendArgument(new UnrealToolArgument(
7024 "-NoSetResourceVersions",
7025 Value: null,
7026 Setter: '=',
7027 Meta: new(
7028 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7029 AllowMultiple: false
7030 )
7031 ));
7032 }
7033 return (UbtConfig) this;
7034 }
7035
7036
7037/// <summary>
7038/// Warning level when reporting toolchains that are not in the preferred version list
7039/// </summary>
7040/// <seealso cref="MicrosoftPlatformSDK.PreferredVisualCppVersions" />
7042 {
7043 if (true)
7044 {
7045 AppendArgument(new UnrealToolArgument(
7046 "-ToolchainVersionWarningLevel",
7047 Value: val?.ToString(),
7048 Setter: '=',
7049 Meta: new(
7050 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7051 AllowMultiple: false
7052 )
7053 ));
7054 }
7055 return (UbtConfig) this;
7056 }
7057
7058
7059/// <summary>
7060/// If specified along with -PGOProfile, use sample-based PGO instead of instrumented. Currently Intel oneAPI 2024.0+ only.
7061/// </summary>
7062 public virtual UbtConfig SampleBasedPGO(bool? val = null)
7063 {
7064 if (true)
7065 {
7066 AppendArgument(new UnrealToolArgument(
7067 "-SampleBasedPGO",
7068 Value: val?.ToString(),
7069 Setter: '=',
7070 Meta: new(
7071 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7072 AllowMultiple: false
7073 )
7074 ));
7075 }
7076 return (UbtConfig) this;
7077 }
7078
7079
7080/// <summary>
7081/// True if /d2ExtendedWarningInfo should be passed to the compiler and /d2:-ExtendedWarningInfo to the linker
7082/// </summary>
7083 public virtual UbtConfig VCExtendedWarningInfo(bool? val = null)
7084 {
7085 if (true)
7086 {
7087 AppendArgument(new UnrealToolArgument(
7088 "-VCExtendedWarningInfo",
7089 Value: val?.ToString(),
7090 Setter: '=',
7091 Meta: new(
7092 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7093 AllowMultiple: false
7094 )
7095 ));
7096 }
7097 return (UbtConfig) this;
7098 }
7099
7100
7101/// <summary>
7102/// True if /d2ExtendedWarningInfo should be passed to the compiler and /d2:-ExtendedWarningInfo to the linker
7103/// </summary>
7104 public virtual UbtConfig VCDisableExtendedWarningInfo(bool present = true)
7105 {
7106 if (present)
7107 {
7108 AppendArgument(new UnrealToolArgument(
7109 "-VCDisableExtendedWarningInfo",
7110 Value: null,
7111 Setter: '=',
7112 Meta: new(
7113 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7114 AllowMultiple: false
7115 )
7116 ));
7117 }
7118 return (UbtConfig) this;
7119 }
7120
7121
7122/// <summary>True if optimizations to reduce the size of debug information should be disabled
7123/// See https://clang.llvm.org/docs/UsersManual.html#cmdoption-fstandalone-debug for more information
7124/// True if optimizations to reduce the size of debug information should be disabled. Disabling this option can decrease pdb size but may degrade the debugging experience.
7125/// See https://clang.llvm.org/docs/UsersManual.html#cmdoption-fstandalone-debug for more information</summary>
7126 public virtual UbtConfig ClangStandaloneDebug(bool? val = null)
7127 {
7128 if (true)
7129 {
7130 AppendArgument(new UnrealToolArgument(
7131 "-ClangStandaloneDebug",
7132 Value: val?.ToString(),
7133 Setter: '=',
7134 Meta: new(
7135 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7136 AllowMultiple: false
7137 )
7138 ));
7139 }
7140 return (UbtConfig) this;
7141 }
7142
7143
7144/// <summary>
7145/// Whether to have the linker or library tool to generate a link repro in the specified directory
7146/// See https://learn.microsoft.com/en-us/cpp/build/reference/linkrepro for more information
7147/// </summary>
7148 public virtual UbtConfig LinkRepro(object val = null)
7149 {
7150 if (true)
7151 {
7152 AppendArgument(new UnrealToolArgument(
7153 "-LinkRepro",
7154 Value: val?.ToString(),
7155 Setter: '=',
7156 Meta: new(
7157 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7158 AllowMultiple: false
7159 )
7160 ));
7161 }
7162 return (UbtConfig) this;
7163 }
7164
7165
7166/// <summary>
7167/// Whether to request the linker create a stripped pdb file as part of the build.
7168/// If enabled the full debug pdb will have the extension .full.pdb
7169/// </summary>
7170 public virtual UbtConfig StripPrivateSymbols(bool? val = null)
7171 {
7172 if (true)
7173 {
7174 AppendArgument(new UnrealToolArgument(
7175 "-StripPrivateSymbols",
7176 Value: val?.ToString(),
7177 Setter: '=',
7178 Meta: new(
7179 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7180 AllowMultiple: false
7181 )
7182 ));
7183 }
7184 return (UbtConfig) this;
7185 }
7186
7187
7188/// <summary>
7189/// Whether this build will use Microsoft's custom XCurl instead of libcurl
7190/// Note that XCurl is not part of the normal Windows SDK and will require additional downloads
7191/// </summary>
7192 public virtual UbtConfig UseXCurl(bool? val = null)
7193 {
7194 if (true)
7195 {
7196 AppendArgument(new UnrealToolArgument(
7197 "-UseXCurl",
7198 Value: val?.ToString(),
7199 Setter: '=',
7200 Meta: new(
7201 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7202 AllowMultiple: false
7203 )
7204 ));
7205 }
7206 return (UbtConfig) this;
7207 }
7208
7209
7210/// <summary>Additional command line providers to load opt-in telemetry connection information from ini.
7211/// List of ini providers for telemetry</summary>
7212 public virtual UbtConfig TelemetryProvider(params object[] values)
7213 {
7214 if (true)
7215 {
7216 AppendArgument(new UnrealToolArgument(
7217 "-TelemetryProvider",
7218 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
7219 Setter: '=',
7220 Meta: new(
7221 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7222 AllowMultiple: true
7223 )
7224 ));
7225 }
7226 return (UbtConfig) this;
7227 }
7228
7229
7230/// <summary>
7231/// Session identifier for this run of UBT, if unset defaults to a random Guid
7232/// </summary>
7233 public virtual UbtConfig Session(object val = null)
7234 {
7235 if (true)
7236 {
7237 AppendArgument(new UnrealToolArgument(
7238 "-Session",
7239 Value: val?.ToString(),
7240 Setter: '=',
7241 Meta: new(
7242 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7243 AllowMultiple: false
7244 )
7245 ));
7246 }
7247 return (UbtConfig) this;
7248 }
7249
7250
7251/// <summary>
7252/// Whether to enable emitting AutoRTFM verification metadata
7253/// </summary>
7254 public virtual UbtConfig UseAutoRTFMVerifier(bool present = true)
7255 {
7256 if (present)
7257 {
7258 AppendArgument(new UnrealToolArgument(
7259 "-UseAutoRTFMVerifier",
7260 Value: null,
7261 Setter: '=',
7262 Meta: new(
7263 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7264 AllowMultiple: false
7265 )
7266 ));
7267 }
7268 return (UbtConfig) this;
7269 }
7270
7271
7272/// <summary>
7273/// Whether to use I/O store on-demand
7274/// </summary>
7275 public virtual UbtConfig CompileIoStoreOnDemand(bool present = true)
7276 {
7277 if (present)
7278 {
7279 AppendArgument(new UnrealToolArgument(
7280 "-CompileIoStoreOnDemand",
7281 Value: null,
7282 Setter: '=',
7283 Meta: new(
7284 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7285 AllowMultiple: false
7286 )
7287 ));
7288 }
7289 return (UbtConfig) this;
7290 }
7291
7292
7293/// <summary>Indicates what warning/error level to treat undefined identifiers in conditional expressions.
7294/// Indicates what warning/error level to treat undefined identifiers in conditional expressions.
7295/// MSVC -
7296/// https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4668
7297/// 4668 - 'symbol' is not defined as a preprocessor macro, replacing with '0' for 'directives'
7298/// 44668 - Note: The extra 4 is not a typo, /wLXXXX sets warning XXXX to level L
7299/// Clang -
7300/// https://clang.llvm.org/docs/DiagnosticsReference.html#wundef</summary>
7302 {
7303 if (true)
7304 {
7305 AppendArgument(new UnrealToolArgument(
7306 "-UndefinedIdentifierWarningLevel",
7307 Value: val?.ToString(),
7308 Setter: '=',
7309 Meta: new(
7310 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7311 AllowMultiple: false
7312 )
7313 ));
7314 }
7315 return (UbtConfig) this;
7316 }
7317
7318
7319/// <summary>Experimental: Store object (.obj) compressed on disk. Requires UBA to link, currently MSVC only. Toggling this flag will invalidate MSVC actions.
7320/// Warning, this option is not currently compatitable with PGO or the the cl-clang linker as those are not detoured and linking will fail.
7321/// Store object (.obj) compressed on disk. Requires uba to do link step where it will decompress obj files again</summary>
7322 public virtual UbtConfig UBAStoreObjFilesCompressed(bool present = true)
7323 {
7324 if (present)
7325 {
7326 AppendArgument(new UnrealToolArgument(
7327 "-UBAStoreObjFilesCompressed",
7328 Value: null,
7329 Setter: '=',
7330 Meta: new(
7331 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7332 AllowMultiple: false
7333 )
7334 ));
7335 }
7336 return (UbtConfig) this;
7337 }
7338
7339
7340/// <summary>
7341/// Experimental: Strip unused exports from libraries. Only applies when LinkType is Modular
7342/// </summary>
7343 public virtual UbtConfig StripExports(bool? val = null)
7344 {
7345 if (true)
7346 {
7347 AppendArgument(new UnrealToolArgument(
7348 "-StripExports",
7349 Value: val?.ToString(),
7350 Setter: '=',
7351 Meta: new(
7352 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7353 AllowMultiple: false
7354 )
7355 ));
7356 }
7357 return (UbtConfig) this;
7358 }
7359
7360
7361/// <summary>
7362/// Experimental: Merge modular modules into combined libraries. Sets LinkType to Modular and enables bStripExports
7363/// </summary>
7364 public virtual UbtConfig MergeModules(bool? val = null)
7365 {
7366 if (true)
7367 {
7368 AppendArgument(new UnrealToolArgument(
7369 "-MergeModules",
7370 Value: val?.ToString(),
7371 Setter: '=',
7372 Meta: new(
7373 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7374 AllowMultiple: false
7375 )
7376 ));
7377 }
7378 return (UbtConfig) this;
7379 }
7380
7381
7382/// <summary>
7383/// Experimental: List of plugins (and their dependencies) to each merge into separate libraries. Requires bMergeModules to be enabled
7384/// </summary>
7385 public virtual UbtConfig MergePlugins(params object[] values)
7386 {
7387 if (true)
7388 {
7389 AppendArgument(new UnrealToolArgument(
7390 "-MergePlugins",
7391 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
7392 Setter: '=',
7393 Meta: new(
7394 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7395 AllowMultiple: true
7396 )
7397 ));
7398 }
7399 return (UbtConfig) this;
7400 }
7401
7402
7403/// <summary>
7404/// Number of second of no completed actions to trigger to terminate the queue.
7405/// If zero, force termination not be enabled.
7406/// </summary>
7407 public virtual UbtConfig ActionStallTerminateTime(double? val = null)
7408 {
7409 if (true)
7410 {
7411 AppendArgument(new UnrealToolArgument(
7412 "-ActionStallTerminateTime",
7413 Value: val?.ToString(),
7414 Setter: '=',
7415 Meta: new(
7416 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7417 AllowMultiple: false
7418 )
7419 ));
7420 }
7421 return (UbtConfig) this;
7422 }
7423
7424
7425/// <summary>
7426/// When set to true, actions that fail remotely with UBA will be retried locally with UBA.
7427/// </summary>
7428 public virtual UbtConfig UBAForcedRetryRemote(bool? val = null)
7429 {
7430 if (true)
7431 {
7432 AppendArgument(new UnrealToolArgument(
7433 "-UBAForcedRetryRemote",
7434 Value: val?.ToString(),
7435 Setter: '=',
7436 Meta: new(
7437 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7438 AllowMultiple: false
7439 )
7440 ));
7441 }
7442 return (UbtConfig) this;
7443 }
7444
7445
7446/// <summary>
7447/// Address of the uba cache service. Will automatically use cache if connected
7448/// </summary>
7449 public virtual UbtConfig UBACache(object val = null)
7450 {
7451 if (true)
7452 {
7453 AppendArgument(new UnrealToolArgument(
7454 "-UBACache",
7455 Value: val?.ToString(),
7456 Setter: '=',
7457 Meta: new(
7458 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7459 AllowMultiple: false
7460 )
7461 ));
7462 }
7463 return (UbtConfig) this;
7464 }
7465
7466
7467/// <summary>Set cache to write instead of fetch
7468/// Set cache to write, expects one of [True, False, BuildMachineOnly]</summary>
7469 public virtual UbtConfig UBAWriteCache(bool? val = null)
7470 {
7471 if (true)
7472 {
7473 AppendArgument(new UnrealToolArgument(
7474 "-UBAWriteCache",
7475 Value: val?.ToString(),
7476 Setter: '=',
7477 Meta: new(
7478 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7479 AllowMultiple: false
7480 )
7481 ));
7482 }
7483 return (UbtConfig) this;
7484 }
7485
7486
7487/// <summary>
7488/// Max number of cache download tasks that can execute in parallel
7489/// </summary>
7490 public virtual UbtConfig UBACacheMaxWorkers(double? val = null)
7491 {
7492 if (true)
7493 {
7494 AppendArgument(new UnrealToolArgument(
7495 "-UBACacheMaxWorkers",
7496 Value: val?.ToString(),
7497 Setter: '=',
7498 Meta: new(
7499 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7500 AllowMultiple: false
7501 )
7502 ));
7503 }
7504 return (UbtConfig) this;
7505 }
7506
7507
7508/// <summary>
7509/// Report reason a cache miss happened. Useful when searching for determinism/portability issues
7510/// </summary>
7511 public virtual UbtConfig UBAReportCacheMissReason(bool? val = null)
7512 {
7513 if (true)
7514 {
7515 AppendArgument(new UnrealToolArgument(
7516 "-UBAReportCacheMissReason",
7517 Value: val?.ToString(),
7518 Setter: '=',
7519 Meta: new(
7520 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7521 AllowMultiple: false
7522 )
7523 ));
7524 }
7525 return (UbtConfig) this;
7526 }
7527
7528
7529/// <summary>
7530/// Compute cluster ID to use in Horde. Set to "_auto" to let Horde server resolve a suitable cluster.
7531/// In multi-region setups this is can simplify configuration of UBT/UBA a lot.
7532/// </summary>
7533 public virtual UbtConfig UBAHordeCluster(object val = null)
7534 {
7535 if (true)
7536 {
7537 AppendArgument(new UnrealToolArgument(
7538 "-UBAHordeCluster",
7539 Value: val?.ToString(),
7540 Setter: '=',
7541 Meta: new(
7542 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7543 AllowMultiple: false
7544 )
7545 ));
7546 }
7547 return (UbtConfig) this;
7548 }
7549
7550
7551/// <summary>
7552/// Volatile Metadata is enabled by default and improves x64 emulation on arm64, but may come at a small perfomance cost (/volatileMetadata-).
7553/// </summary>
7554 public virtual UbtConfig DisableVolatileMetadata(bool? val = null)
7555 {
7556 if (true)
7557 {
7558 AppendArgument(new UnrealToolArgument(
7559 "-DisableVolatileMetadata",
7560 Value: val?.ToString(),
7561 Setter: '=',
7562 Meta: new(
7563 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7564 AllowMultiple: false
7565 )
7566 ));
7567 }
7568 return (UbtConfig) this;
7569 }
7570
7571
7572/// <summary>
7573/// If specified along with -PGOOptimize, will use the specified per-merged pgd file instead of the usual pgd file with loose pgc files.
7574/// </summary>
7575 public virtual UbtConfig PGOMergedPGD(object val = null)
7576 {
7577 if (true)
7578 {
7579 AppendArgument(new UnrealToolArgument(
7580 "-PGOMergedPGD",
7581 Value: val?.ToString(),
7582 Setter: '=',
7583 Meta: new(
7584 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7585 AllowMultiple: false
7586 )
7587 ));
7588 }
7589 return (UbtConfig) this;
7590 }
7591
7592
7593/// <summary>
7594/// True if we should use the Clang linker (LLD) when we are compiling with Clang or Intel oneAPI, otherwise we use the MSVC linker.
7595/// </summary>
7596 public virtual UbtConfig NoClangLinker(bool present = true)
7597 {
7598 if (present)
7599 {
7600 AppendArgument(new UnrealToolArgument(
7601 "-NoClangLinker",
7602 Value: null,
7603 Setter: '=',
7604 Meta: new(
7605 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7606 AllowMultiple: false
7607 )
7608 ));
7609 }
7610 return (UbtConfig) this;
7611 }
7612
7613
7614/// <summary>
7615/// Enables enforcing standard C++ ODR violations (/Zc:checkGwOdr) in VS2022 17.5 Preview 2.0+
7616/// </summary>
7617 public virtual UbtConfig StrictODR(bool? val = null)
7618 {
7619 if (true)
7620 {
7621 AppendArgument(new UnrealToolArgument(
7622 "-StrictODR",
7623 Value: val?.ToString(),
7624 Setter: '=',
7625 Meta: new(
7626 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7627 AllowMultiple: false
7628 )
7629 ));
7630 }
7631 return (UbtConfig) this;
7632 }
7633
7634
7635/// <summary>
7636/// If you supply -NoDebugInfo, windows platforms still create debug info while linking. Set this to true to not create debug info while linking in this circumstance
7637/// </summary>
7638 public virtual UbtConfig NoLinkerDebugInfo(bool? val = null)
7639 {
7640 if (true)
7641 {
7642 AppendArgument(new UnrealToolArgument(
7643 "-NoLinkerDebugInfo",
7644 Value: val?.ToString(),
7645 Setter: '=',
7646 Meta: new(
7647 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7648 AllowMultiple: false
7649 )
7650 ));
7651 }
7652 return (UbtConfig) this;
7653 }
7654
7655
7656/// <summary>Outputs all the available configurations, platforms and targets to a file provided by the user.</summary>
7657 public virtual UbtConfig Query(object val = null)
7658 {
7659 if (true)
7660 {
7661 AppendArgument(new UnrealToolArgument(
7662 "-Query",
7663 Value: val?.ToString(),
7664 Setter: '=',
7665 Meta: new(
7666 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7667 AllowMultiple: false
7668 )
7669 ));
7670 }
7671 return (UbtConfig) this;
7672 }
7673
7674
7675
7676 public virtual UbtConfig TargetDescriptionFile(object val = null)
7677 {
7678 if (true)
7679 {
7680 AppendArgument(new UnrealToolArgument(
7681 "-TargetDescriptionFile",
7682 Value: val?.ToString(),
7683 Setter: '=',
7684 Meta: new(
7685 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7686 AllowMultiple: false
7687 )
7688 ));
7689 }
7690 return (UbtConfig) this;
7691 }
7692
7693
7694/// <summary>Show version information and exit.</summary>
7695 public virtual UbtConfig WorkspaceGeneratorVersion(bool? val = null)
7696 {
7697 if (true)
7698 {
7699 AppendArgument(new UnrealToolArgument(
7700 "-WorkspaceGeneratorVersion",
7701 Value: val?.ToString(),
7702 Setter: '=',
7703 Meta: new(
7704 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7705 AllowMultiple: false
7706 )
7707 ));
7708 }
7709 return (UbtConfig) this;
7710 }
7711
7712
7713/// <summary>Generate .vsconfig file with dependencies and exit</summary>
7714 public virtual UbtConfig GenerateVsConfigOnly(bool? val = null)
7715 {
7716 if (true)
7717 {
7718 AppendArgument(new UnrealToolArgument(
7719 "-GenerateVsConfigOnly",
7720 Value: val?.ToString(),
7721 Setter: '=',
7722 Meta: new(
7723 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7724 AllowMultiple: false
7725 )
7726 ));
7727 }
7728 return (UbtConfig) this;
7729 }
7730
7731
7732/// <summary>
7733/// Indicates what warning/error level to treat unhandled enumerators in switches on enumeration-typed values.
7734/// MSVC -
7735/// 4061 - https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4061
7736/// 44061 - Note: The extra 4 is not a typo, /wLXXXX sets warning XXXX to level L
7737/// Clang -
7738/// https://clang.llvm.org/docs/DiagnosticsReference.html#wswitch-enum
7739/// </summary>
7741 {
7742 if (true)
7743 {
7744 AppendArgument(new UnrealToolArgument(
7745 "-SwitchUnhandledEnumeratorWarningLevel",
7746 Value: val?.ToString(),
7747 Setter: '=',
7748 Meta: new(
7749 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7750 AllowMultiple: false
7751 )
7752 ));
7753 }
7754 return (UbtConfig) this;
7755 }
7756
7757
7758/// <summary>
7759/// How to treat module unsupported validation messages
7760/// </summary>
7762 {
7763 if (true)
7764 {
7765 AppendArgument(new UnrealToolArgument(
7766 "-ModuleUnsupportedWarningLevel",
7767 Value: val?.ToString(),
7768 Setter: '=',
7769 Meta: new(
7770 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7771 AllowMultiple: false
7772 )
7773 ));
7774 }
7775 return (UbtConfig) this;
7776 }
7777
7778
7779/// <summary>
7780/// How to treat plugin specific module unsupported validation messages
7781/// </summary>
7783 {
7784 if (true)
7785 {
7786 AppendArgument(new UnrealToolArgument(
7787 "-PluginModuleUnsupportedWarningLevel",
7788 Value: val?.ToString(),
7789 Setter: '=',
7790 Meta: new(
7791 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7792 AllowMultiple: false
7793 )
7794 ));
7795 }
7796 return (UbtConfig) this;
7797 }
7798
7799
7800/// <summary>
7801/// Whether to run LLVM verification after the AutoRTFM compiler pass.
7802/// This is used by our compiler folks to ensure the pass works with
7803/// the various code-paths UBT can take us down.
7804/// </summary>
7805 public virtual UbtConfig AutoRTFMVerify(bool present = true)
7806 {
7807 if (present)
7808 {
7809 AppendArgument(new UnrealToolArgument(
7810 "-AutoRTFMVerify",
7811 Value: null,
7812 Setter: '=',
7813 Meta: new(
7814 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7815 AllowMultiple: false
7816 )
7817 ));
7818 }
7819 return (UbtConfig) this;
7820 }
7821
7822
7823/// <summary>
7824/// Whether to link closed function declarations statically.
7825/// </summary>
7826 public virtual UbtConfig AutoRTFMClosedStaticLinkage(bool present = true)
7827 {
7828 if (present)
7829 {
7830 AppendArgument(new UnrealToolArgument(
7831 "-AutoRTFMClosedStaticLinkage",
7832 Value: null,
7833 Setter: '=',
7834 Meta: new(
7835 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7836 AllowMultiple: false
7837 )
7838 ));
7839 }
7840 return (UbtConfig) this;
7841 }
7842
7843
7844/// <summary>
7845/// Experimental work in progress: Set flags to use toolchain virtual file system support, to generate consistent pathing in outputs
7846/// </summary>
7847 public virtual UbtConfig VFS(bool present = true)
7848 {
7849 if (present)
7850 {
7851 AppendArgument(new UnrealToolArgument(
7852 "-VFS",
7853 Value: null,
7854 Setter: '=',
7855 Meta: new(
7856 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7857 AllowMultiple: false
7858 )
7859 ));
7860 }
7861 return (UbtConfig) this;
7862 }
7863
7864
7865/// <summary>
7866/// Experimental work in progress: Set flags to use toolchain virtual file system support, to generate consistent pathing in outputs
7867/// </summary>
7868 public virtual UbtConfig NoVFS(bool present = true)
7869 {
7870 if (present)
7871 {
7872 AppendArgument(new UnrealToolArgument(
7873 "-NoVFS",
7874 Value: null,
7875 Setter: '=',
7876 Meta: new(
7877 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7878 AllowMultiple: false
7879 )
7880 ));
7881 }
7882 return (UbtConfig) this;
7883 }
7884
7885
7886/// <summary>
7887/// Select a minimum ARM64 target CPU. This will change what ARMv8(9)-A ISA + extension code will be compiled for.
7888/// Changing it from default will guarantee not to work on all ARM64 CPUs.
7889/// Currently supported by clang compiler only
7890/// </summary>
7892 {
7893 if (true)
7894 {
7895 AppendArgument(new UnrealToolArgument(
7896 "-MinArm64CpuTarget",
7897 Value: val?.ToString(),
7898 Setter: '=',
7899 Meta: new(
7900 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7901 AllowMultiple: false
7902 )
7903 ));
7904 }
7905 return (UbtConfig) this;
7906 }
7907
7908
7909/// <summary>
7910/// Experimental: List of plugins (and their dependencies) to ignore when processing merged libraries. Requires bMergeModules to be enabled
7911/// Ignored plugins will still be compiled, but if they're kept in the base executable, their dependencies will not be forced out of merged library with them.
7912/// This should be used carefully, for organisational plugins known to have dependencies they don't actually need at runtime.
7913/// </summary>
7914 public virtual UbtConfig MergePluginsIgnored(params object[] values)
7915 {
7916 if (true)
7917 {
7918 AppendArgument(new UnrealToolArgument(
7919 "-MergePluginsIgnored",
7920 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
7921 Setter: '=',
7922 Meta: new(
7923 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7924 AllowMultiple: true
7925 )
7926 ));
7927 }
7928 return (UbtConfig) this;
7929 }
7930
7931
7932/// <summary>
7933/// List of provider names for remote connections from ini
7934/// It is recommended to set Providers in ini so the setting can be shared with the uba controller in editor, such as
7935/// Windows: %ProgramData%/Epic/Unreal Engine/Engine/Config/SystemEngine.ini
7936/// Mac: ~/Library/Application Support/Epic/Unreal Engine/Engine/Config/SystemEngine.ini
7937/// Linux: ~/.config/Epic/Unreal Engine/Engine/Config/SystemEngine.ini
7938/// </summary>
7939 public virtual UbtConfig UBAProviders(params object[] values)
7940 {
7941 if (true)
7942 {
7943 AppendArgument(new UnrealToolArgument(
7944 "-UBAProviders",
7945 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
7946 Setter: '=',
7947 Meta: new(
7948 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7949 AllowMultiple: true
7950 )
7951 ));
7952 }
7953 return (UbtConfig) this;
7954 }
7955
7956
7957/// <summary>
7958/// List of provider names for remote cache from ini
7959/// </summary>
7960 public virtual UbtConfig UBACacheProviders(params object[] values)
7961 {
7962 if (true)
7963 {
7964 AppendArgument(new UnrealToolArgument(
7965 "-UBACacheProviders",
7966 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
7967 Setter: '=',
7968 Meta: new(
7969 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7970 AllowMultiple: true
7971 )
7972 ));
7973 }
7974 return (UbtConfig) this;
7975 }
7976
7977
7978/// <summary>
7979/// When set to true, actions that fail locally with certain error codes will retry without uba.
7980/// </summary>
7981 public virtual UbtConfig UBANoRetry(bool present = true)
7982 {
7983 if (present)
7984 {
7985 AppendArgument(new UnrealToolArgument(
7986 "-UBANoRetry",
7987 Value: null,
7988 Setter: '=',
7989 Meta: new(
7990 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
7991 AllowMultiple: false
7992 )
7993 ));
7994 }
7995 return (UbtConfig) this;
7996 }
7997
7998
7999/// <summary>
8000/// Store object (.obj) compressed on disk. Requires uba to do link step where it will decompress obj files again
8001/// </summary>
8002 public virtual UbtConfig UBADisableStoreObjFilesCompressed(bool present = true)
8003 {
8004 if (present)
8005 {
8006 AppendArgument(new UnrealToolArgument(
8007 "-UBADisableStoreObjFilesCompressed",
8008 Value: null,
8009 Setter: '=',
8010 Meta: new(
8011 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
8012 AllowMultiple: false
8013 )
8014 ));
8015 }
8016 return (UbtConfig) this;
8017 }
8018
8019
8020/// <summary>
8021/// Disable all detouring making all actions run outside uba
8022/// </summary>
8023 public virtual UbtConfig UBANoDetour(bool present = true)
8024 {
8025 if (present)
8026 {
8027 AppendArgument(new UnrealToolArgument(
8028 "-UBANoDetour",
8029 Value: null,
8030 Setter: '=',
8031 Meta: new(
8032 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
8033 AllowMultiple: false
8034 )
8035 ));
8036 }
8037 return (UbtConfig) this;
8038 }
8039
8040
8041/// <summary>
8042/// Shuffle the list of cache servers before each read attempt
8043/// </summary>
8044 public virtual UbtConfig UBAShuffleCache(bool? val = null)
8045 {
8046 if (true)
8047 {
8048 AppendArgument(new UnrealToolArgument(
8049 "-UBAShuffleCache",
8050 Value: val?.ToString(),
8051 Setter: '=',
8052 Meta: new(
8053 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
8054 AllowMultiple: false
8055 )
8056 ));
8057 }
8058 return (UbtConfig) this;
8059 }
8060
8061
8062/// <summary>
8063/// Compression level. Options are None, SuperFast, VeryFast, Fast, Normal, Optimal1 to Optimal5
8064/// </summary>
8065 public virtual UbtConfig UBACompressionLevel(object val = null)
8066 {
8067 if (true)
8068 {
8069 AppendArgument(new UnrealToolArgument(
8070 "-UBACompressionLevel",
8071 Value: val?.ToString(),
8072 Setter: '=',
8073 Meta: new(
8074 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
8075 AllowMultiple: false
8076 )
8077 ));
8078 }
8079 return (UbtConfig) this;
8080 }
8081
8082
8083/// <summary>
8084/// If specificed Visual Studio Dynamic Debugging support will be enabled, unless the compiler or linker is not MSVC or LTCG is enabled
8085/// </summary>
8086 public virtual UbtConfig DynamicDebugging(bool? val = null)
8087 {
8088 if (true)
8089 {
8090 AppendArgument(new UnrealToolArgument(
8091 "-DynamicDebugging",
8092 Value: val?.ToString(),
8093 Setter: '=',
8094 Meta: new(
8095 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
8096 AllowMultiple: false
8097 )
8098 ));
8099 }
8100 return (UbtConfig) this;
8101 }
8102
8103
8104/// <summary>
8105/// True if we should use the Rad linker
8106/// </summary>
8107 public virtual UbtConfig RadLinker(bool? val = null)
8108 {
8109 if (true)
8110 {
8111 AppendArgument(new UnrealToolArgument(
8112 "-RadLinker",
8113 Value: val?.ToString(),
8114 Setter: '=',
8115 Meta: new(
8116 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
8117 AllowMultiple: false
8118 )
8119 ));
8120 }
8121 return (UbtConfig) this;
8122 }
8123
8124
8125/// <summary>
8126/// Enables instrumentation.
8127/// </summary>
8128 public virtual UbtConfig EnableInstrumentation(bool? val = null)
8129 {
8130 if (true)
8131 {
8132 AppendArgument(new UnrealToolArgument(
8133 "-EnableInstrumentation",
8134 Value: val?.ToString(),
8135 Setter: '=',
8136 Meta: new(
8137 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
8138 AllowMultiple: false
8139 )
8140 ));
8141 }
8142 return (UbtConfig) this;
8143 }
8144
8145
8146/// <summary>The mode to execute
8147/// Generate project files for Android Studio</summary>
8148 public virtual UbtConfig AndroidStudio(bool present = true)
8149 {
8150 if (present)
8151 {
8152 AppendArgument(new UnrealToolArgument(
8153 "-AndroidStudio",
8154 Value: null,
8155 Setter: '=',
8156 Meta: new(
8157 Compatibility: UnrealCompatibility.UE_5_Latest,
8158 AllowMultiple: false
8159 )
8160 ));
8161 }
8162 return (UbtConfig) this;
8163 }
8164
8165
8166/// <summary>
8167/// Subfolder to place executables in, relative to the default location.
8168/// </summary>
8169 public virtual UbtConfig BinariesSubfolder(object val = null)
8170 {
8171 if (true)
8172 {
8173 AppendArgument(new UnrealToolArgument(
8174 "-BinariesSubfolder",
8175 Value: val?.ToString(),
8176 Setter: '=',
8177 Meta: new(
8178 Compatibility: UnrealCompatibility.UE_5_Latest,
8179 AllowMultiple: false
8180 )
8181 ));
8182 }
8183 return (UbtConfig) this;
8184 }
8185
8186
8187/// <summary>
8188/// True if debug line number tables should be omitted in debug information for inline functions, compilers that support doing so.
8189/// </summary>
8191 {
8192 if (true)
8193 {
8194 AppendArgument(new UnrealToolArgument(
8195 "-DebugInfoNoInlineLineTables",
8196 Value: val?.ToString(),
8197 Setter: '=',
8198 Meta: new(
8199 Compatibility: UnrealCompatibility.UE_5_Latest,
8200 AllowMultiple: false
8201 )
8202 ));
8203 }
8204 return (UbtConfig) this;
8205 }
8206
8207
8208/// <summary>
8209/// Modules that should include line number tables for inline functions for compilers that support doing so, even if DebugInfoNoInlineLineTables would otherwise remove them.
8210/// </summary>
8211 public virtual UbtConfig DebugInfoInlineLineTablesModules(params object[] values)
8212 {
8213 if (true)
8214 {
8215 AppendArgument(new UnrealToolArgument(
8216 "-DebugInfoInlineLineTablesModules",
8217 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
8218 Setter: '=',
8219 Meta: new(
8220 Compatibility: UnrealCompatibility.UE_5_Latest,
8221 AllowMultiple: true
8222 )
8223 ));
8224 }
8225 return (UbtConfig) this;
8226 }
8227
8228
8229/// <summary>
8230/// Modules that should include line number tables for inline functions for compilers that support doing so, even if DebugInfoNoInlineLineTables would otherwise remove them.
8231/// </summary>
8232 public virtual UbtConfig DebugInfoInlineLineTablesPlugins(params object[] values)
8233 {
8234 if (true)
8235 {
8236 AppendArgument(new UnrealToolArgument(
8237 "-DebugInfoInlineLineTablesPlugins",
8238 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
8239 Setter: '=',
8240 Meta: new(
8241 Compatibility: UnrealCompatibility.UE_5_Latest,
8242 AllowMultiple: true
8243 )
8244 ));
8245 }
8246 return (UbtConfig) this;
8247 }
8248
8249
8250/// <summary>
8251/// True if template type names should be simplified to reduce the size of debug info for compilers that support doing so.
8252/// </summary>
8254 {
8255 if (true)
8256 {
8257 AppendArgument(new UnrealToolArgument(
8258 "-DebugInfoSimpleTemplateNames",
8259 Value: val?.ToString(),
8260 Setter: '=',
8261 Meta: new(
8262 Compatibility: UnrealCompatibility.UE_5_Latest,
8263 AllowMultiple: false
8264 )
8265 ));
8266 }
8267 return (UbtConfig) this;
8268 }
8269
8270
8271/// <summary>
8272/// Modules for which template type names should be simplified to reduce the size of debug info for compilers that support doing so.
8273/// </summary>
8274 public virtual UbtConfig DebugInfoSimpleTemplateNamesModules(params object[] values)
8275 {
8276 if (true)
8277 {
8278 AppendArgument(new UnrealToolArgument(
8279 "-DebugInfoSimpleTemplateNamesModules",
8280 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
8281 Setter: '=',
8282 Meta: new(
8283 Compatibility: UnrealCompatibility.UE_5_Latest,
8284 AllowMultiple: true
8285 )
8286 ));
8287 }
8288 return (UbtConfig) this;
8289 }
8290
8291
8292/// <summary>
8293/// Plugins for which template type names should be simplified to reduce the size of debug info for compilers that support doing so.
8294/// </summary>
8295 public virtual UbtConfig DebugInfoSimpleTemplateNamesPlugins(params object[] values)
8296 {
8297 if (true)
8298 {
8299 AppendArgument(new UnrealToolArgument(
8300 "-DebugInfoSimpleTemplateNamesPlugins",
8301 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
8302 Setter: '=',
8303 Meta: new(
8304 Compatibility: UnrealCompatibility.UE_5_Latest,
8305 AllowMultiple: true
8306 )
8307 ));
8308 }
8309 return (UbtConfig) this;
8310 }
8311
8312
8313/// <summary>
8314/// Salt value to modify cache bucket calculation, can be used to invalidate cached actions outputs
8315/// </summary>
8316 public virtual UbtConfig CacheSalt(object val = null)
8317 {
8318 if (true)
8319 {
8320 AppendArgument(new UnrealToolArgument(
8321 "-CacheSalt",
8322 Value: val?.ToString(),
8323 Setter: '=',
8324 Meta: new(
8325 Compatibility: UnrealCompatibility.UE_5_Latest,
8326 AllowMultiple: false
8327 )
8328 ));
8329 }
8330 return (UbtConfig) this;
8331 }
8332
8333
8334/// <summary>
8335/// When Link Time Code Generation (LTCG) is enabled, whether to
8336/// prefer using the lighter weight version on supported platforms.
8337/// </summary>
8338 public virtual UbtConfig NoThinLTO(bool present = true)
8339 {
8340 if (present)
8341 {
8342 AppendArgument(new UnrealToolArgument(
8343 "-NoThinLTO",
8344 Value: null,
8345 Setter: '=',
8346 Meta: new(
8347 Compatibility: UnrealCompatibility.UE_5_Latest,
8348 AllowMultiple: false
8349 )
8350 ));
8351 }
8352 return (UbtConfig) this;
8353 }
8354
8355
8356/// <summary>
8357/// When ThinLTO is enabled we use distributed linking if supported
8358/// This can save a lot of time for large binaries
8359/// </summary>
8360 public virtual UbtConfig ThinLTODistributed(bool? val = null)
8361 {
8362 if (true)
8363 {
8364 AppendArgument(new UnrealToolArgument(
8365 "-ThinLTODistributed",
8366 Value: val?.ToString(),
8367 Setter: '=',
8368 Meta: new(
8369 Compatibility: UnrealCompatibility.UE_5_Latest,
8370 AllowMultiple: false
8371 )
8372 ));
8373 }
8374 return (UbtConfig) this;
8375 }
8376
8377
8378/// <summary>
8379/// Experimental: List of modules to exclude from Engine to be placed in Common
8380/// </summary>
8381 public virtual UbtConfig MergeAdditionalCommonModules(params object[] values)
8382 {
8383 if (true)
8384 {
8385 AppendArgument(new UnrealToolArgument(
8386 "-MergeAdditionalCommonModules",
8387 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
8388 Setter: '=',
8389 Meta: new(
8390 Compatibility: UnrealCompatibility.UE_5_Latest,
8391 AllowMultiple: true
8392 )
8393 ));
8394 }
8395 return (UbtConfig) this;
8396 }
8397
8398
8399/// <summary>
8400/// Experimental: List of plugins (and their dependencies) to explicitly exclude when processing merged libraries. Requires bMergeModules to be enabled
8401/// Ignored plugins will still be compiled but forced into the executable.
8402/// </summary>
8403 public virtual UbtConfig MergePluginsExcluded(params object[] values)
8404 {
8405 if (true)
8406 {
8407 AppendArgument(new UnrealToolArgument(
8408 "-MergePluginsExcluded",
8409 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
8410 Setter: '=',
8411 Meta: new(
8412 Compatibility: UnrealCompatibility.UE_5_Latest,
8413 AllowMultiple: true
8414 )
8415 ));
8416 }
8417 return (UbtConfig) this;
8418 }
8419
8420
8421/// <summary>
8422/// Experimental: Whether to report module merging data to the game target.
8423/// </summary>
8424 public virtual UbtConfig MergeModulesReport(bool? val = null)
8425 {
8426 if (true)
8427 {
8428 AppendArgument(new UnrealToolArgument(
8429 "-MergeModulesReport",
8430 Value: val?.ToString(),
8431 Setter: '=',
8432 Meta: new(
8433 Compatibility: UnrealCompatibility.UE_5_Latest,
8434 AllowMultiple: false
8435 )
8436 ));
8437 }
8438 return (UbtConfig) this;
8439 }
8440
8441
8442/// <summary>
8443/// Store object (.obj) compressed on disk. Requires uba to do link step where it will decompress obj files again
8444/// </summary>
8445 public virtual UbtConfig Nocompress(bool present = true)
8446 {
8447 if (present)
8448 {
8449 AppendArgument(new UnrealToolArgument(
8450 "-nocompress",
8451 Value: null,
8452 Setter: '=',
8453 Meta: new(
8454 Compatibility: UnrealCompatibility.UE_5_Latest,
8455 AllowMultiple: false
8456 )
8457 ));
8458 }
8459 return (UbtConfig) this;
8460 }
8461
8462
8463/// <summary>
8464/// Max workers allowed to be used by build session
8465/// </summary>
8466 public virtual UbtConfig UBAHordeMaxWorkers(double? val = null)
8467 {
8468 if (true)
8469 {
8470 AppendArgument(new UnrealToolArgument(
8471 "-UBAHordeMaxWorkers",
8472 Value: val?.ToString(),
8473 Setter: '=',
8474 Meta: new(
8475 Compatibility: UnrealCompatibility.UE_5_Latest,
8476 AllowMultiple: false
8477 )
8478 ));
8479 }
8480 return (UbtConfig) this;
8481 }
8482
8483
8484/// <summary>
8485/// Max idle time in seconds to maintain a connection to a worker when no pending actions are currently available due to waiting on dependencies
8486/// </summary>
8487 public virtual UbtConfig UBAHordeMaxIdle(double? val = null)
8488 {
8489 if (true)
8490 {
8491 AppendArgument(new UnrealToolArgument(
8492 "-UBAHordeMaxIdle",
8493 Value: val?.ToString(),
8494 Setter: '=',
8495 Meta: new(
8496 Compatibility: UnrealCompatibility.UE_5_Latest,
8497 AllowMultiple: false
8498 )
8499 ));
8500 }
8501 return (UbtConfig) this;
8502 }
8503
8504
8505/// <summary>
8506/// Enabled parameter for use by INI config, expects one of [True, False, BuildMachineOnly]
8507/// </summary>
8508 public virtual UbtConfig UBAHordeCacheEnabled(bool? val = null)
8509 {
8510 if (true)
8511 {
8512 AppendArgument(new UnrealToolArgument(
8513 "-UBAHordeCacheEnabled",
8514 Value: val?.ToString(),
8515 Setter: '=',
8516 Meta: new(
8517 Compatibility: UnrealCompatibility.UE_5_Latest,
8518 AllowMultiple: false
8519 )
8520 ));
8521 }
8522 return (UbtConfig) this;
8523 }
8524
8525
8526/// <summary>
8527/// Number of desired connections when connecting to cache
8528/// </summary>
8529 public virtual UbtConfig UBAHordeCacheDesiredConnectionCount(double? val = null)
8530 {
8531 if (true)
8532 {
8533 AppendArgument(new UnrealToolArgument(
8534 "-UBAHordeCacheDesiredConnectionCount",
8535 Value: val?.ToString(),
8536 Setter: '=',
8537 Meta: new(
8538 Compatibility: UnrealCompatibility.UE_5_Latest,
8539 AllowMultiple: false
8540 )
8541 ));
8542 }
8543 return (UbtConfig) this;
8544 }
8545
8546
8547/// <summary>
8548/// Makes build interation faster
8549/// </summary>
8550 public virtual UbtConfig FastIterate(bool present = true)
8551 {
8552 if (present)
8553 {
8554 AppendArgument(new UnrealToolArgument(
8555 "-FastIterate",
8556 Value: null,
8557 Setter: '=',
8558 Meta: new(
8559 Compatibility: UnrealCompatibility.UE_5_Latest,
8560 AllowMultiple: false
8561 )
8562 ));
8563 }
8564 return (UbtConfig) this;
8565 }
8566
8567
8568/// <summary>
8569/// Only generates gradle
8570/// </summary>
8571 public virtual UbtConfig OnlyGradleGeneration(bool present = true)
8572 {
8573 if (present)
8574 {
8575 AppendArgument(new UnrealToolArgument(
8576 "-OnlyGradleGeneration",
8577 Value: null,
8578 Setter: '=',
8579 Meta: new(
8580 Compatibility: UnrealCompatibility.UE_5_Latest,
8581 AllowMultiple: false
8582 )
8583 ));
8584 }
8585 return (UbtConfig) this;
8586 }
8587
8588
8589/// <summary>
8590/// Whether to create a ".stripped" file when stripping symbols or not.
8591/// </summary>
8592 public virtual UbtConfig Createstripflagfile(bool present = true)
8593 {
8594 if (present)
8595 {
8596 AppendArgument(new UnrealToolArgument(
8597 "-createstripflagfile",
8598 Value: null,
8599 Setter: '=',
8600 Meta: new(
8601 Compatibility: UnrealCompatibility.UE_5_Latest,
8602 AllowMultiple: false
8603 )
8604 ));
8605 }
8606 return (UbtConfig) this;
8607 }
8608
8609
8610/// <summary>
8611/// Whether to globally skip symbol stripping
8612/// </summary>
8613 public virtual UbtConfig NoStripSymbols(bool? val = null)
8614 {
8615 if (true)
8616 {
8617 AppendArgument(new UnrealToolArgument(
8618 "-NoStripSymbols",
8619 Value: val?.ToString(),
8620 Setter: '=',
8621 Meta: new(
8622 Compatibility: UnrealCompatibility.UE_5_Latest,
8623 AllowMultiple: false
8624 )
8625 ));
8626 }
8627 return (UbtConfig) this;
8628 }
8629
8630
8631/// <summary>
8632/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.
8633/// </summary>
8634 public virtual UbtConfig _2026(WindowsCompiler? val = null)
8635 {
8636 if (true)
8637 {
8638 AppendArgument(new UnrealToolArgument(
8639 "-2026",
8640 Value: val?.ToString(),
8641 Setter: '=',
8642 Meta: new(
8643 Compatibility: UnrealCompatibility.UE_5_Latest,
8644 AllowMultiple: false
8645 )
8646 ));
8647 }
8648 return (UbtConfig) this;
8649 }
8650
8651
8652/// <summary>
8653/// True if optimizations to reduce the size of debug information should be disabled. Disabling this option can decrease pdb size but may degrade the debugging experience.
8654/// See https://clang.llvm.org/docs/UsersManual.html#cmdoption-fstandalone-debug for more information
8655/// </summary>
8656 public virtual UbtConfig NoClangStandaloneDebug(bool present = true)
8657 {
8658 if (present)
8659 {
8660 AppendArgument(new UnrealToolArgument(
8661 "-NoClangStandaloneDebug",
8662 Value: null,
8663 Setter: '=',
8664 Meta: new(
8665 Compatibility: UnrealCompatibility.UE_5_Latest,
8666 AllowMultiple: false
8667 )
8668 ));
8669 }
8670 return (UbtConfig) this;
8671 }
8672
8673
8674/// <summary></summary>
8676 {
8677 public override string Name => "UnrealBuildTool";
8678 public override string CliName => "";
8679 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
8680
8681 private ToolConfig[] _configs = null;
8682 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
8683 {
8684 };
8685 }
8686
8687 protected readonly UnrealBuildToolConfig UnrealBuildToolStorage = new();
8688
8689/// <summary>
8690/// Global options for UBT (any modes)
8691/// </summary>
8693 {
8694 public override string Name => "GlobalOptions";
8695 public override string CliName => "";
8696 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
8697
8698/// <summary>The amount of detail to write to the log
8699/// Increase output verbosity</summary>
8700 public virtual GlobalOptionsConfig Verbose(bool present = true)
8701 {
8702 if (present)
8703 {
8704 AppendArgument(new UnrealToolArgument(
8705 "-Verbose",
8706 Value: null,
8707 Setter: '=',
8708 Meta: new(
8710 AllowMultiple: false
8711 )
8712 ));
8713 }
8714 return (GlobalOptionsConfig) this;
8715 }
8716
8717
8718/// <summary>The amount of detail to write to the log
8719/// Increase output verbosity more</summary>
8720 public virtual GlobalOptionsConfig VeryVerbose(bool present = true)
8721 {
8722 if (present)
8723 {
8724 AppendArgument(new UnrealToolArgument(
8725 "-VeryVerbose",
8726 Value: null,
8727 Setter: '=',
8728 Meta: new(
8730 AllowMultiple: false
8731 )
8732 ));
8733 }
8734 return (GlobalOptionsConfig) this;
8735 }
8736
8737
8738/// <summary>Specifies the path to a log file to write. Note that the default mode (eg. building, generating project files) will create a log file by default if this not specified.
8739/// Specify a log file location instead of the default Engine/Programs/UnrealBuildTool/Log.txt
8740/// Specify a log file location instead of the default Engine/Programs/UnrealHeaderTool/Saved/Logs/UnrealHeaderTool.log</summary>
8741 public virtual GlobalOptionsConfig Log(object val = null)
8742 {
8743 if (true)
8744 {
8745 AppendArgument(new UnrealToolArgument(
8746 "-Log",
8747 Value: val?.ToString(),
8748 Setter: '=',
8749 Meta: new(
8751 AllowMultiple: false
8752 )
8753 ));
8754 }
8755 return (GlobalOptionsConfig) this;
8756 }
8757
8758
8759/// <summary>Whether to include timestamps in the log
8760/// Include timestamps in the log</summary>
8761 public virtual GlobalOptionsConfig Timestamps(bool? val = null)
8762 {
8763 if (true)
8764 {
8765 AppendArgument(new UnrealToolArgument(
8766 "-Timestamps",
8767 Value: val?.ToString(),
8768 Setter: '=',
8769 Meta: new(
8771 AllowMultiple: false
8772 )
8773 ));
8774 }
8775 return (GlobalOptionsConfig) this;
8776 }
8777
8778
8779/// <summary>Whether to format messages in MsBuild format
8780/// Format messages for msbuild
8781/// Whether UBT is invoked from MSBuild.
8782/// If false will, disable bDontBundleLibrariesInAPK, unless forced .</summary>
8783 public virtual GlobalOptionsConfig FromMsBuild(bool? val = null)
8784 {
8785 if (true)
8786 {
8787 AppendArgument(new UnrealToolArgument(
8788 "-FromMsBuild",
8789 Value: val?.ToString(),
8790 Setter: '=',
8791 Meta: new(
8793 AllowMultiple: false
8794 )
8795 ));
8796 }
8797 return (GlobalOptionsConfig) this;
8798 }
8799
8800
8801/// <summary>Whether to write progress markup in a format that can be parsed by other programs
8802/// Write progress messages in a format that can be parsed by other programs</summary>
8803 public virtual GlobalOptionsConfig Progress(bool? val = null)
8804 {
8805 if (true)
8806 {
8807 AppendArgument(new UnrealToolArgument(
8808 "-Progress",
8809 Value: val?.ToString(),
8810 Setter: '=',
8811 Meta: new(
8813 AllowMultiple: false
8814 )
8815 ));
8816 }
8817 return (GlobalOptionsConfig) this;
8818 }
8819
8820
8821/// <summary>Whether to ignore the mutex
8822/// Allow more than one instance of the program to run at once</summary>
8823 public virtual GlobalOptionsConfig NoMutex(bool? val = null)
8824 {
8825 if (true)
8826 {
8827 AppendArgument(new UnrealToolArgument(
8828 "-NoMutex",
8829 Value: val?.ToString(),
8830 Setter: '=',
8831 Meta: new(
8833 AllowMultiple: false
8834 )
8835 ));
8836 }
8837 return (GlobalOptionsConfig) this;
8838 }
8839
8840
8841/// <summary>Whether to wait for the mutex rather than aborting immediately
8842/// Wait for another instance to finish and then start, rather than aborting immediately</summary>
8843 public virtual GlobalOptionsConfig WaitMutex(bool? val = null)
8844 {
8845 if (true)
8846 {
8847 AppendArgument(new UnrealToolArgument(
8848 "-WaitMutex",
8849 Value: val?.ToString(),
8850 Setter: '=',
8851 Meta: new(
8853 AllowMultiple: false
8854 )
8855 ));
8856 }
8857 return (GlobalOptionsConfig) this;
8858 }
8859
8860
8861/// <summary>Whether to wait for the mutex rather than aborting immediately
8862/// Remote tool ini directory</summary>
8863 public virtual GlobalOptionsConfig RemoteIni(object val = null)
8864 {
8865 if (true)
8866 {
8867 AppendArgument(new UnrealToolArgument(
8868 "-RemoteIni",
8869 Value: val?.ToString(),
8870 Setter: '=',
8871 Meta: new(
8873 AllowMultiple: false
8874 )
8875 ));
8876 }
8877 return (GlobalOptionsConfig) this;
8878 }
8879
8880
8881/// <summary>
8882/// The mode to execute
8883/// </summary>
8884 public virtual GlobalOptionsConfig Mode(object val = null)
8885 {
8886 if (true)
8887 {
8888 AppendArgument(new UnrealToolArgument(
8889 "-Mode",
8890 Value: val?.ToString(),
8891 Setter: '=',
8892 Meta: new(
8894 AllowMultiple: false
8895 )
8896 ));
8897 }
8898 return (GlobalOptionsConfig) this;
8899 }
8900
8901
8902/// <summary>The mode to execute
8903/// Clean build products. Equivalent to -Mode=Clean</summary>
8904 public virtual GlobalOptionsConfig Clean(bool present = true)
8905 {
8906 if (present)
8907 {
8908 AppendArgument(new UnrealToolArgument(
8909 "-Clean",
8910 Value: null,
8911 Setter: '=',
8912 Meta: new(
8914 AllowMultiple: false
8915 )
8916 ));
8917 }
8918 return (GlobalOptionsConfig) this;
8919 }
8920
8921
8922/// <summary>The mode to execute
8923/// Generate project files based on IDE preference. Equivalent to -Mode=GenerateProjectFiles</summary>
8924 public virtual GlobalOptionsConfig ProjectFiles(bool present = true)
8925 {
8926 if (present)
8927 {
8928 AppendArgument(new UnrealToolArgument(
8929 "-ProjectFiles",
8930 Value: null,
8931 Setter: '=',
8932 Meta: new(
8934 AllowMultiple: false
8935 )
8936 ));
8937 }
8938 return (GlobalOptionsConfig) this;
8939 }
8940
8941
8942/// <summary>The mode to execute
8943/// Generate project files in specified format. May be used multiple times.</summary>
8944 public virtual GlobalOptionsConfig ProjectFileFormat(bool present = true)
8945 {
8946 if (present)
8947 {
8948 AppendArgument(new UnrealToolArgument(
8949 "-ProjectFileFormat",
8950 Value: null,
8951 Setter: '=',
8952 Meta: new(
8954 AllowMultiple: false
8955 )
8956 ));
8957 }
8958 return (GlobalOptionsConfig) this;
8959 }
8960
8961
8962/// <summary>The mode to execute
8963/// Generate Linux Makefile
8964/// Generate Makefile</summary>
8965 public virtual GlobalOptionsConfig Makefile(bool present = true)
8966 {
8967 if (present)
8968 {
8969 AppendArgument(new UnrealToolArgument(
8970 "-Makefile",
8971 Value: null,
8972 Setter: '=',
8973 Meta: new(
8975 AllowMultiple: false
8976 )
8977 ));
8978 }
8979 return (GlobalOptionsConfig) this;
8980 }
8981
8982
8983/// <summary>The mode to execute
8984/// Generate project files for CMake</summary>
8985 public virtual GlobalOptionsConfig CMakefile(bool present = true)
8986 {
8987 if (present)
8988 {
8989 AppendArgument(new UnrealToolArgument(
8990 "-CMakefile",
8991 Value: null,
8992 Setter: '=',
8993 Meta: new(
8995 AllowMultiple: false
8996 )
8997 ));
8998 }
8999 return (GlobalOptionsConfig) this;
9000 }
9001
9002
9003/// <summary>The mode to execute
9004/// Generate project files for QMake</summary>
9005 public virtual GlobalOptionsConfig QMakefile(bool present = true)
9006 {
9007 if (present)
9008 {
9009 AppendArgument(new UnrealToolArgument(
9010 "-QMakefile",
9011 Value: null,
9012 Setter: '=',
9013 Meta: new(
9015 AllowMultiple: false
9016 )
9017 ));
9018 }
9019 return (GlobalOptionsConfig) this;
9020 }
9021
9022
9023/// <summary>The mode to execute
9024/// Generate project files for KDevelop</summary>
9025 public virtual GlobalOptionsConfig KDevelopfile(bool present = true)
9026 {
9027 if (present)
9028 {
9029 AppendArgument(new UnrealToolArgument(
9030 "-KDevelopfile",
9031 Value: null,
9032 Setter: '=',
9033 Meta: new(
9035 AllowMultiple: false
9036 )
9037 ));
9038 }
9039 return (GlobalOptionsConfig) this;
9040 }
9041
9042
9043/// <summary>The mode to execute
9044/// Generate project files for Codelite</summary>
9045 public virtual GlobalOptionsConfig CodeliteFiles(bool present = true)
9046 {
9047 if (present)
9048 {
9049 AppendArgument(new UnrealToolArgument(
9050 "-CodeliteFiles",
9051 Value: null,
9052 Setter: '=',
9053 Meta: new(
9055 AllowMultiple: false
9056 )
9057 ));
9058 }
9059 return (GlobalOptionsConfig) this;
9060 }
9061
9062
9063/// <summary>The mode to execute
9064/// Generate project files for XCode</summary>
9065 public virtual GlobalOptionsConfig XCodeProjectFiles(bool present = true)
9066 {
9067 if (present)
9068 {
9069 AppendArgument(new UnrealToolArgument(
9070 "-XCodeProjectFiles",
9071 Value: null,
9072 Setter: '=',
9073 Meta: new(
9075 AllowMultiple: false
9076 )
9077 ));
9078 }
9079 return (GlobalOptionsConfig) this;
9080 }
9081
9082
9083/// <summary>
9084/// The mode to execute
9085/// </summary>
9086 public virtual GlobalOptionsConfig EdditProjectFiles(bool present = true)
9087 {
9088 if (present)
9089 {
9090 AppendArgument(new UnrealToolArgument(
9091 "-EdditProjectFiles",
9092 Value: null,
9093 Setter: '=',
9094 Meta: new(
9095 Compatibility: UnrealCompatibility.UE_4,
9096 AllowMultiple: false
9097 )
9098 ));
9099 }
9100 return (GlobalOptionsConfig) this;
9101 }
9102
9103
9104/// <summary>The mode to execute
9105/// Generate project files for Visual Studio Code</summary>
9106 public virtual GlobalOptionsConfig VSCode(bool present = true)
9107 {
9108 if (present)
9109 {
9110 AppendArgument(new UnrealToolArgument(
9111 "-VSCode",
9112 Value: null,
9113 Setter: '=',
9114 Meta: new(
9116 AllowMultiple: false
9117 )
9118 ));
9119 }
9120 return (GlobalOptionsConfig) this;
9121 }
9122
9123
9124/// <summary>The mode to execute
9125/// Generate project files for Visual Studio Mac</summary>
9126 public virtual GlobalOptionsConfig VSMac(bool present = true)
9127 {
9128 if (present)
9129 {
9130 AppendArgument(new UnrealToolArgument(
9131 "-VSMac",
9132 Value: null,
9133 Setter: '=',
9134 Meta: new(
9136 AllowMultiple: false
9137 )
9138 ));
9139 }
9140 return (GlobalOptionsConfig) this;
9141 }
9142
9143
9144/// <summary>The mode to execute
9145/// Generate project files for CLion</summary>
9146 public virtual GlobalOptionsConfig CLion(bool present = true)
9147 {
9148 if (present)
9149 {
9150 AppendArgument(new UnrealToolArgument(
9151 "-CLion",
9152 Value: null,
9153 Setter: '=',
9154 Meta: new(
9156 AllowMultiple: false
9157 )
9158 ));
9159 }
9160 return (GlobalOptionsConfig) this;
9161 }
9162
9163
9164/// <summary>The mode to execute
9165/// Generate project files for Rider</summary>
9166 public virtual GlobalOptionsConfig Rider(bool present = true)
9167 {
9168 if (present)
9169 {
9170 AppendArgument(new UnrealToolArgument(
9171 "-Rider",
9172 Value: null,
9173 Setter: '=',
9174 Meta: new(
9176 AllowMultiple: false
9177 )
9178 ));
9179 }
9180 return (GlobalOptionsConfig) this;
9181 }
9182
9183
9184/// <summary>Log all attempts to write to the specified file
9185/// Trace writes requested to the specified file</summary>
9186 public virtual GlobalOptionsConfig TraceWrites(object val = null)
9187 {
9188 if (true)
9189 {
9190 AppendArgument(new UnrealToolArgument(
9191 "-TraceWrites",
9192 Value: val?.ToString(),
9193 Setter: '=',
9194 Meta: new(
9195 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9196 AllowMultiple: false
9197 )
9198 ));
9199 }
9200 return (GlobalOptionsConfig) this;
9201 }
9202
9203
9204/// <summary>The mode to execute
9205/// Generate project files for Eddie</summary>
9206 public virtual GlobalOptionsConfig EddieProjectFiles(bool present = true)
9207 {
9208 if (present)
9209 {
9210 AppendArgument(new UnrealToolArgument(
9211 "-EddieProjectFiles",
9212 Value: null,
9213 Setter: '=',
9214 Meta: new(
9215 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9216 AllowMultiple: false
9217 )
9218 ));
9219 }
9220 return (GlobalOptionsConfig) this;
9221 }
9222
9223
9224/// <summary>Whether or not to suppress warnings of missing SDKs from warnings to LogEventType.Log in UEBuildPlatformSDK.cs
9225/// Missing SDKs error verbosity level will be reduced from warning to log</summary>
9226 public virtual GlobalOptionsConfig SuppressSDKWarnings(bool? val = null)
9227 {
9228 if (true)
9229 {
9230 AppendArgument(new UnrealToolArgument(
9231 "-SuppressSDKWarnings",
9232 Value: val?.ToString(),
9233 Setter: '=',
9234 Meta: new(
9235 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9236 AllowMultiple: false
9237 )
9238 ));
9239 }
9240 return (GlobalOptionsConfig) this;
9241 }
9242
9243
9244/// <summary>Additional command line providers to load opt-in telemetry connection information from ini.
9245/// List of ini providers for telemetry</summary>
9246 public virtual GlobalOptionsConfig TelemetryProvider(params object[] values)
9247 {
9248 if (true)
9249 {
9250 AppendArgument(new UnrealToolArgument(
9251 "-TelemetryProvider",
9252 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
9253 Setter: '=',
9254 Meta: new(
9255 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9256 AllowMultiple: true
9257 )
9258 ));
9259 }
9260 return (GlobalOptionsConfig) this;
9261 }
9262
9263
9264/// <summary>
9265/// Session identifier for this run of UBT, if unset defaults to a random Guid
9266/// </summary>
9267 public virtual GlobalOptionsConfig Session(object val = null)
9268 {
9269 if (true)
9270 {
9271 AppendArgument(new UnrealToolArgument(
9272 "-Session",
9273 Value: val?.ToString(),
9274 Setter: '=',
9275 Meta: new(
9276 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9277 AllowMultiple: false
9278 )
9279 ));
9280 }
9281 return (GlobalOptionsConfig) this;
9282 }
9283
9284
9285/// <summary>The mode to execute
9286/// Generate project files for Android Studio</summary>
9287 public virtual GlobalOptionsConfig AndroidStudio(bool present = true)
9288 {
9289 if (present)
9290 {
9291 AppendArgument(new UnrealToolArgument(
9292 "-AndroidStudio",
9293 Value: null,
9294 Setter: '=',
9295 Meta: new(
9296 Compatibility: UnrealCompatibility.UE_5_Latest,
9297 AllowMultiple: false
9298 )
9299 ));
9300 }
9301 return (GlobalOptionsConfig) this;
9302 }
9303
9304
9305 private ToolConfig[] _configs = null;
9306 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
9307 {
9308 };
9309 }
9310
9311 protected readonly GlobalOptionsConfig GlobalOptionsStorage = new();
9312
9313/// <summary>
9314/// Global settings for building. Should not contain any target-specific settings.
9315/// </summary>
9317 {
9318 public override string Name => "BuildConfiguration";
9319 public override string CliName => "";
9320 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
9321
9322/// <summary>
9323/// Use existing static libraries for all engine modules in this target.
9324/// </summary>
9325 public virtual BuildConfigurationConfig UsePrecompiled(bool? val = null)
9326 {
9327 if (true)
9328 {
9329 AppendArgument(new UnrealToolArgument(
9330 "-UsePrecompiled",
9331 Value: val?.ToString(),
9332 Setter: '=',
9333 Meta: new(
9335 AllowMultiple: false
9336 )
9337 ));
9338 }
9339 return (BuildConfigurationConfig) this;
9340 }
9341
9342
9343/// <summary>Whether XGE may be used.
9344/// Whether XGE may be used if available, default is true.</summary>
9345 public virtual BuildConfigurationConfig NoXGE(bool present = true)
9346 {
9347 if (present)
9348 {
9349 AppendArgument(new UnrealToolArgument(
9350 "-NoXGE",
9351 Value: null,
9352 Setter: '=',
9353 Meta: new(
9355 AllowMultiple: false
9356 )
9357 ));
9358 }
9359 return (BuildConfigurationConfig) this;
9360 }
9361
9362
9363/// <summary>Whether FASTBuild may be used.
9364/// Whether FASTBuild may be used if available, default is true.</summary>
9365 public virtual BuildConfigurationConfig NoFASTBuild(bool present = true)
9366 {
9367 if (present)
9368 {
9369 AppendArgument(new UnrealToolArgument(
9370 "-NoFASTBuild",
9371 Value: null,
9372 Setter: '=',
9373 Meta: new(
9375 AllowMultiple: false
9376 )
9377 ));
9378 }
9379 return (BuildConfigurationConfig) this;
9380 }
9381
9382
9383/// <summary>
9384/// Enables support for very fast iterative builds by caching target data. Turning this on causes Unreal Build Tool to emit
9385/// 'UBT Makefiles' for targets when they are built the first time. Subsequent builds will load these Makefiles and begin
9386/// outdatedness checking and build invocation very quickly. The caveat is that if source files are added or removed to
9387/// the project, UBT will need to gather information about those in order for your build to complete successfully. Currently,
9388/// you must run the project file generator after adding/removing source files to tell UBT to re-gather this information.
9389///
9390/// Events that can invalidate the 'UBT Makefile':
9391/// - Adding/removing .cpp files
9392/// - Adding/removing .h files with UObjects
9393/// - Adding new UObject types to a file that did not previously have any
9394/// - Changing global build settings (most settings in this file qualify)
9395/// - Changed code that affects how Unreal Header Tool works
9396///
9397/// You can force regeneration of the 'UBT Makefile' by passing the '-gather' argument, or simply regenerating project files.
9398///
9399/// This also enables the fast include file dependency scanning and caching system that allows Unreal Build Tool to detect out
9400/// of date dependencies very quickly. When enabled, a deep C++ include graph does not have to be generated, and instead,
9401/// we only scan and cache indirect includes for after a dependent build product was already found to be out of date. During the
9402/// next build, we will load those cached indirect includes and check for outdatedness.
9403/// </summary>
9404 public virtual BuildConfigurationConfig NoUBTMakefiles(bool present = true)
9405 {
9406 if (present)
9407 {
9408 AppendArgument(new UnrealToolArgument(
9409 "-NoUBTMakefiles",
9410 Value: null,
9411 Setter: '=',
9412 Meta: new(
9414 AllowMultiple: false
9415 )
9416 ));
9417 }
9418 return (BuildConfigurationConfig) this;
9419 }
9420
9421
9422/// <summary>Number of actions that can be executed in parallel. If 0 then code will pick a default based
9423/// on the number of cores available. Only applies to the ParallelExecutor
9424/// Number of actions that can be executed in parallel. If 0 then code will pick a default based
9425/// on the number of cores and memory available. Applies to the ParallelExecutor, HybridExecutor, and LocalExecutor</summary>
9426 public virtual BuildConfigurationConfig MaxParallelActions(double? val = null)
9427 {
9428 if (true)
9429 {
9430 AppendArgument(new UnrealToolArgument(
9431 "-MaxParallelActions",
9432 Value: val?.ToString(),
9433 Setter: '=',
9434 Meta: new(
9436 AllowMultiple: false
9437 )
9438 ));
9439 }
9440 return (BuildConfigurationConfig) this;
9441 }
9442
9443
9444/// <summary>
9445/// If true, force header regeneration. Intended for the build machine.
9446/// </summary>
9447 public virtual BuildConfigurationConfig ForceHeaderGeneration(bool? val = null)
9448 {
9449 if (true)
9450 {
9451 AppendArgument(new UnrealToolArgument(
9452 "-ForceHeaderGeneration",
9453 Value: val?.ToString(),
9454 Setter: '=',
9455 Meta: new(
9457 AllowMultiple: false
9458 )
9459 ));
9460 }
9461 return (BuildConfigurationConfig) this;
9462 }
9463
9464
9465/// <summary>
9466/// If true, do not build UHT, assume it is already built.
9467/// </summary>
9468 public virtual BuildConfigurationConfig NoBuildUHT(bool? val = null)
9469 {
9470 if (true)
9471 {
9472 AppendArgument(new UnrealToolArgument(
9473 "-NoBuildUHT",
9474 Value: val?.ToString(),
9475 Setter: '=',
9476 Meta: new(
9477 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1,
9478 AllowMultiple: false
9479 )
9480 ));
9481 }
9482 return (BuildConfigurationConfig) this;
9483 }
9484
9485
9486/// <summary>If true, fail if any of the generated header files is out of date.
9487/// Consider any changes to output files as being an error</summary>
9489 {
9490 if (true)
9491 {
9492 AppendArgument(new UnrealToolArgument(
9493 "-FailIfGeneratedCodeChanges",
9494 Value: val?.ToString(),
9495 Setter: '=',
9496 Meta: new(
9498 AllowMultiple: false
9499 )
9500 ));
9501 }
9502 return (BuildConfigurationConfig) this;
9503 }
9504
9505
9506/// <summary>
9507/// True if hot-reload from IDE is allowed.
9508/// </summary>
9509 public virtual BuildConfigurationConfig NoHotReloadFromIDE(bool present = true)
9510 {
9511 if (present)
9512 {
9513 AppendArgument(new UnrealToolArgument(
9514 "-NoHotReloadFromIDE",
9515 Value: null,
9516 Setter: '=',
9517 Meta: new(
9519 AllowMultiple: false
9520 )
9521 ));
9522 }
9523 return (BuildConfigurationConfig) this;
9524 }
9525
9526
9527/// <summary>
9528/// Whether to skip compiling rules assemblies and just assume they are valid
9529/// </summary>
9530 public virtual BuildConfigurationConfig SkipRulesCompile(bool? val = null)
9531 {
9532 if (true)
9533 {
9534 AppendArgument(new UnrealToolArgument(
9535 "-SkipRulesCompile",
9536 Value: val?.ToString(),
9537 Setter: '=',
9538 Meta: new(
9540 AllowMultiple: false
9541 )
9542 ));
9543 }
9544 return (BuildConfigurationConfig) this;
9545 }
9546
9547
9548/// <summary>
9549/// Whether debug info should be written to the console.
9550/// </summary>
9551 public virtual BuildConfigurationConfig PrintDebugInfo(bool present = true)
9552 {
9553 if (present)
9554 {
9555 AppendArgument(new UnrealToolArgument(
9556 "-PrintDebugInfo",
9557 Value: null,
9558 Setter: '=',
9559 Meta: new(
9560 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9561 AllowMultiple: false
9562 )
9563 ));
9564 }
9565 return (BuildConfigurationConfig) this;
9566 }
9567
9568
9569/// <summary>Whether SN-DBS may be used.
9570/// Whether SN-DBS may be used if available, default is true.</summary>
9571 public virtual BuildConfigurationConfig NoSNDBS(bool present = true)
9572 {
9573 if (present)
9574 {
9575 AppendArgument(new UnrealToolArgument(
9576 "-NoSNDBS",
9577 Value: null,
9578 Setter: '=',
9579 Meta: new(
9580 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9581 AllowMultiple: false
9582 )
9583 ));
9584 }
9585 return (BuildConfigurationConfig) this;
9586 }
9587
9588
9589/// <summary>
9590/// Whether to force compiling rules assemblies, regardless of whether they are valid
9591/// </summary>
9592 public virtual BuildConfigurationConfig ForceRulesCompile(bool? val = null)
9593 {
9594 if (true)
9595 {
9596 AppendArgument(new UnrealToolArgument(
9597 "-ForceRulesCompile",
9598 Value: val?.ToString(),
9599 Setter: '=',
9600 Meta: new(
9601 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9602 AllowMultiple: false
9603 )
9604 ));
9605 }
9606 return (BuildConfigurationConfig) this;
9607 }
9608
9609
9610/// <summary>
9611/// Whether Horde remote compute may be used. Highly experimental, disabled by default.
9612/// </summary>
9613 public virtual BuildConfigurationConfig HordeCompute(bool present = true)
9614 {
9615 if (present)
9616 {
9617 AppendArgument(new UnrealToolArgument(
9618 "-HordeCompute",
9619 Value: null,
9620 Setter: '=',
9621 Meta: new(
9622 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2,
9623 AllowMultiple: false
9624 )
9625 ));
9626 }
9627 return (BuildConfigurationConfig) this;
9628 }
9629
9630
9631/// <summary>
9632/// Consider logical cores when determining how many total cpu cores are available.
9633/// </summary>
9634 public virtual BuildConfigurationConfig AllCores(bool? val = null)
9635 {
9636 if (true)
9637 {
9638 AppendArgument(new UnrealToolArgument(
9639 "-AllCores",
9640 Value: val?.ToString(),
9641 Setter: '=',
9642 Meta: new(
9643 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9644 AllowMultiple: false
9645 )
9646 ));
9647 }
9648 return (BuildConfigurationConfig) this;
9649 }
9650
9651
9652/// <summary>
9653/// When single file targets are specified, via -File=, -SingleFile=, or -FileList=
9654/// If this option is set, no error will be produced if the source file is not included in the target.
9655/// Additionally, if any file or file list is specified, the target will not be built if none of the specified files are part of that target,
9656/// including the case where a file specified via -FileList= is empty.
9657/// </summary>
9658 public virtual BuildConfigurationConfig IgnoreInvalidFiles(bool? val = null)
9659 {
9660 if (true)
9661 {
9662 AppendArgument(new UnrealToolArgument(
9663 "-IgnoreInvalidFiles",
9664 Value: val?.ToString(),
9665 Setter: '=',
9666 Meta: new(
9667 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9668 AllowMultiple: false
9669 )
9670 ));
9671 }
9672 return (BuildConfigurationConfig) this;
9673 }
9674
9675
9676/// <summary>
9677/// Instruct the executor to write compact output e.g. only errors, if supported by the executor.
9678/// This field is used to hold the value when specified from the command line or XML
9679/// </summary>
9680 public virtual BuildConfigurationConfig CompactOutput(bool? val = null)
9681 {
9682 if (true)
9683 {
9684 AppendArgument(new UnrealToolArgument(
9685 "-CompactOutput",
9686 Value: val?.ToString(),
9687 Setter: '=',
9688 Meta: new(
9689 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9690 AllowMultiple: false
9691 )
9692 ));
9693 }
9694 return (BuildConfigurationConfig) this;
9695 }
9696
9697
9698/// <summary>
9699/// If set, artifacts will be read
9700/// </summary>
9701 public virtual BuildConfigurationConfig ArtifactReads(bool present = true)
9702 {
9703 if (present)
9704 {
9705 AppendArgument(new UnrealToolArgument(
9706 "-ArtifactReads",
9707 Value: null,
9708 Setter: '=',
9709 Meta: new(
9710 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9711 AllowMultiple: false
9712 )
9713 ));
9714 }
9715 return (BuildConfigurationConfig) this;
9716 }
9717
9718
9719/// <summary>
9720/// If set, artifacts will be read
9721/// </summary>
9722 public virtual BuildConfigurationConfig NoArtifactReads(bool present = true)
9723 {
9724 if (present)
9725 {
9726 AppendArgument(new UnrealToolArgument(
9727 "-NoArtifactReads",
9728 Value: null,
9729 Setter: '=',
9730 Meta: new(
9731 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9732 AllowMultiple: false
9733 )
9734 ));
9735 }
9736 return (BuildConfigurationConfig) this;
9737 }
9738
9739
9740/// <summary>
9741/// If set, artifacts will be written
9742/// </summary>
9743 public virtual BuildConfigurationConfig ArtifactWrites(bool present = true)
9744 {
9745 if (present)
9746 {
9747 AppendArgument(new UnrealToolArgument(
9748 "-ArtifactWrites",
9749 Value: null,
9750 Setter: '=',
9751 Meta: new(
9752 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9753 AllowMultiple: false
9754 )
9755 ));
9756 }
9757 return (BuildConfigurationConfig) this;
9758 }
9759
9760
9761/// <summary>
9762/// If set, artifacts will be written
9763/// </summary>
9764 public virtual BuildConfigurationConfig NoArtifactWrites(bool present = true)
9765 {
9766 if (present)
9767 {
9768 AppendArgument(new UnrealToolArgument(
9769 "-NoArtifactWrites",
9770 Value: null,
9771 Setter: '=',
9772 Meta: new(
9773 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9774 AllowMultiple: false
9775 )
9776 ));
9777 }
9778 return (BuildConfigurationConfig) this;
9779 }
9780
9781
9782/// <summary>
9783/// If true, log all artifact cache misses as informational messages
9784/// </summary>
9785 public virtual BuildConfigurationConfig LogArtifactCacheMisses(bool present = true)
9786 {
9787 if (present)
9788 {
9789 AppendArgument(new UnrealToolArgument(
9790 "-LogArtifactCacheMisses",
9791 Value: null,
9792 Setter: '=',
9793 Meta: new(
9794 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9795 AllowMultiple: false
9796 )
9797 ));
9798 }
9799 return (BuildConfigurationConfig) this;
9800 }
9801
9802
9803/// <summary>
9804/// Location to store the artifacts.
9805/// </summary>
9806 public virtual BuildConfigurationConfig ArtifactDirectory(object val = null)
9807 {
9808 if (true)
9809 {
9810 AppendArgument(new UnrealToolArgument(
9811 "-ArtifactDirectory",
9812 Value: val?.ToString(),
9813 Setter: '=',
9814 Meta: new(
9815 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9816 AllowMultiple: false
9817 )
9818 ));
9819 }
9820 return (BuildConfigurationConfig) this;
9821 }
9822
9823
9824/// <summary>
9825/// Whether the UnrealBuildAccelerator executor will be used.
9826/// </summary>
9827 public virtual BuildConfigurationConfig UBA(bool present = true)
9828 {
9829 if (present)
9830 {
9831 AppendArgument(new UnrealToolArgument(
9832 "-UBA",
9833 Value: null,
9834 Setter: '=',
9835 Meta: new(
9836 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9837 AllowMultiple: false
9838 )
9839 ));
9840 }
9841 return (BuildConfigurationConfig) this;
9842 }
9843
9844
9845/// <summary>
9846/// Whether the UnrealBuildAccelerator executor will be used.
9847/// </summary>
9848 public virtual BuildConfigurationConfig NoUBA(bool present = true)
9849 {
9850 if (present)
9851 {
9852 AppendArgument(new UnrealToolArgument(
9853 "-NoUBA",
9854 Value: null,
9855 Setter: '=',
9856 Meta: new(
9857 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
9858 AllowMultiple: false
9859 )
9860 ));
9861 }
9862 return (BuildConfigurationConfig) this;
9863 }
9864
9865
9866/// <summary>
9867/// Whether the UnrealBuildAccelerator (local only) executor will be used.
9868/// </summary>
9869 public virtual BuildConfigurationConfig UBALocal(bool present = true)
9870 {
9871 if (present)
9872 {
9873 AppendArgument(new UnrealToolArgument(
9874 "-UBALocal",
9875 Value: null,
9876 Setter: '=',
9877 Meta: new(
9878 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5,
9879 AllowMultiple: false
9880 )
9881 ));
9882 }
9883 return (BuildConfigurationConfig) this;
9884 }
9885
9886
9887/// <summary>
9888/// Whether the UnrealBuildAccelerator (local only) executor will be used.
9889/// </summary>
9890 public virtual BuildConfigurationConfig NoUBALocal(bool present = true)
9891 {
9892 if (present)
9893 {
9894 AppendArgument(new UnrealToolArgument(
9895 "-NoUBALocal",
9896 Value: null,
9897 Setter: '=',
9898 Meta: new(
9899 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5,
9900 AllowMultiple: false
9901 )
9902 ));
9903 }
9904 return (BuildConfigurationConfig) this;
9905 }
9906
9907
9908 private ToolConfig[] _configs = null;
9909 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
9910 {
9911 };
9912 }
9913
9914 protected readonly BuildConfigurationConfig BuildConfigurationStorage = new();
9915
9916/// <summary>
9917/// Describes all of the information needed to initialize a UEBuildTarget object
9918/// </summary>
9920 {
9921 public override string Name => "TargetDescriptor";
9922 public override string CliName => "";
9923 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
9924
9925/// <summary>
9926/// Foreign plugin to compile against this target
9927/// </summary>
9928 public virtual TargetDescriptorConfig Plugin(object val = null)
9929 {
9930 if (true)
9931 {
9932 AppendArgument(new UnrealToolArgument(
9933 "-Plugin",
9934 Value: val?.ToString(),
9935 Setter: '=',
9936 Meta: new(
9938 AllowMultiple: false
9939 )
9940 ));
9941 }
9942 return (TargetDescriptorConfig) this;
9943 }
9944
9945
9946/// <summary>
9947/// Set of module names to compile.
9948/// </summary>
9949 public virtual TargetDescriptorConfig Module(params object[] values)
9950 {
9951 if (true)
9952 {
9953 if (values != null)
9954 foreach (var val in values)
9955 {
9956 AppendArgument(new UnrealToolArgument(
9957 "-Module",
9958 Value: val.ToString(),
9959 Setter: '=',
9960 Meta: new(
9962 AllowMultiple: true
9963 )
9964 ));
9965 }
9966 }
9967 return (TargetDescriptorConfig) this;
9968 }
9969
9970
9971/// <summary>
9972/// Individual file(s) to compile
9973/// </summary>
9974 public virtual TargetDescriptorConfig SingleFile(params object[] values)
9975 {
9976 if (true)
9977 {
9978 if (values != null)
9979 foreach (var val in values)
9980 {
9981 AppendArgument(new UnrealToolArgument(
9982 "-SingleFile",
9983 Value: val.ToString(),
9984 Setter: '=',
9985 Meta: new(
9987 AllowMultiple: true
9988 )
9989 ));
9990 }
9991 }
9992 return (TargetDescriptorConfig) this;
9993 }
9994
9995
9996/// <summary>
9997/// Whether to perform hot reload for this target
9998/// </summary>
10000 {
10001 if (true)
10002 {
10003 AppendArgument(new UnrealToolArgument(
10004 "-NoHotReload",
10005 Value: val?.ToString(),
10006 Setter: '=',
10007 Meta: new(
10009 AllowMultiple: false
10010 )
10011 ));
10012 }
10013 return (TargetDescriptorConfig) this;
10014 }
10015
10016
10017/// <summary>
10018/// Whether to perform hot reload for this target
10019/// </summary>
10021 {
10022 if (true)
10023 {
10024 AppendArgument(new UnrealToolArgument(
10025 "-ForceHotReload",
10026 Value: val?.ToString(),
10027 Setter: '=',
10028 Meta: new(
10030 AllowMultiple: false
10031 )
10032 ));
10033 }
10034 return (TargetDescriptorConfig) this;
10035 }
10036
10037
10038/// <summary>
10039/// Whether to perform hot reload for this target
10040/// </summary>
10042 {
10043 if (true)
10044 {
10045 AppendArgument(new UnrealToolArgument(
10046 "-LiveCoding",
10047 Value: val?.ToString(),
10048 Setter: '=',
10049 Meta: new(
10051 AllowMultiple: false
10052 )
10053 ));
10054 }
10055 return (TargetDescriptorConfig) this;
10056 }
10057
10058
10059/// <summary>
10060/// Export the actions for the target to a file
10061/// </summary>
10062 public virtual TargetDescriptorConfig WriteActions(params object[] values)
10063 {
10064 if (true)
10065 {
10066 if (values != null)
10067 foreach (var val in values)
10068 {
10069 AppendArgument(new UnrealToolArgument(
10070 "-WriteActions",
10071 Value: val.ToString(),
10072 Setter: '=',
10073 Meta: new(
10074 Compatibility: UnrealCompatibility.UE_4,
10075 AllowMultiple: true
10076 )
10077 ));
10078 }
10079 }
10080 return (TargetDescriptorConfig) this;
10081 }
10082
10083
10084/// <summary>
10085/// Path to a file containing a list of modules that may be modified for live coding.
10086/// </summary>
10087 public virtual TargetDescriptorConfig LiveCodingModules(object val = null)
10088 {
10089 if (true)
10090 {
10091 AppendArgument(new UnrealToolArgument(
10092 "-LiveCodingModules",
10093 Value: val?.ToString(),
10094 Setter: '=',
10095 Meta: new(
10097 AllowMultiple: false
10098 )
10099 ));
10100 }
10101 return (TargetDescriptorConfig) this;
10102 }
10103
10104
10105/// <summary>
10106/// Path to the manifest for passing info about the output to live coding
10107/// </summary>
10108 public virtual TargetDescriptorConfig LiveCodingManifest(object val = null)
10109 {
10110 if (true)
10111 {
10112 AppendArgument(new UnrealToolArgument(
10113 "-LiveCodingManifest",
10114 Value: val?.ToString(),
10115 Setter: '=',
10116 Meta: new(
10118 AllowMultiple: false
10119 )
10120 ));
10121 }
10122 return (TargetDescriptorConfig) this;
10123 }
10124
10125
10126/// <summary>
10127/// Suppress messages about building this target
10128/// </summary>
10129 public virtual TargetDescriptorConfig Quiet(bool? val = null)
10130 {
10131 if (true)
10132 {
10133 AppendArgument(new UnrealToolArgument(
10134 "-Quiet",
10135 Value: val?.ToString(),
10136 Setter: '=',
10137 Meta: new(
10139 AllowMultiple: false
10140 )
10141 ));
10142 }
10143 return (TargetDescriptorConfig) this;
10144 }
10145
10146
10147/// <summary>
10148/// Lists of files to compile
10149/// </summary>
10150 public virtual TargetDescriptorConfig FileList(params object[] values)
10151 {
10152 if (true)
10153 {
10154 if (values != null)
10155 foreach (var val in values)
10156 {
10157 AppendArgument(new UnrealToolArgument(
10158 "-FileList",
10159 Value: val.ToString(),
10160 Setter: '=',
10161 Meta: new(
10162 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
10163 AllowMultiple: true
10164 )
10165 ));
10166 }
10167 }
10168 return (TargetDescriptorConfig) this;
10169 }
10170
10171
10172/// <summary>
10173/// Individual file(s) to compile
10174/// </summary>
10175 public virtual TargetDescriptorConfig File(params object[] values)
10176 {
10177 if (true)
10178 {
10179 if (values != null)
10180 foreach (var val in values)
10181 {
10182 AppendArgument(new UnrealToolArgument(
10183 "-File",
10184 Value: val.ToString(),
10185 Setter: '=',
10186 Meta: new(
10187 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
10188 AllowMultiple: true
10189 )
10190 ));
10191 }
10192 }
10193 return (TargetDescriptorConfig) this;
10194 }
10195
10196
10197/// <summary>
10198/// If a non-zero value, a live coding request will be terminated if more than the given number of actions are required.
10199/// </summary>
10200 public virtual TargetDescriptorConfig LiveCodingLimit(double? val = null)
10201 {
10202 if (true)
10203 {
10204 AppendArgument(new UnrealToolArgument(
10205 "-LiveCodingLimit",
10206 Value: val?.ToString(),
10207 Setter: '=',
10208 Meta: new(
10209 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
10210 AllowMultiple: false
10211 )
10212 ));
10213 }
10214 return (TargetDescriptorConfig) this;
10215 }
10216
10217
10218/// <summary>
10219/// Clean the target before trying to build it
10220/// </summary>
10221 public virtual TargetDescriptorConfig Rebuild(bool? val = null)
10222 {
10223 if (true)
10224 {
10225 AppendArgument(new UnrealToolArgument(
10226 "-Rebuild",
10227 Value: val?.ToString(),
10228 Setter: '=',
10229 Meta: new(
10230 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
10231 AllowMultiple: false
10232 )
10233 ));
10234 }
10235 return (TargetDescriptorConfig) this;
10236 }
10237
10238
10239/// <summary>
10240/// Whether we should treat the ForeignPlugin argument as a local plugin for building purposes
10241/// </summary>
10242 public virtual TargetDescriptorConfig BuildPluginAsLocal(bool? val = null)
10243 {
10244 if (true)
10245 {
10246 AppendArgument(new UnrealToolArgument(
10247 "-BuildPluginAsLocal",
10248 Value: val?.ToString(),
10249 Setter: '=',
10250 Meta: new(
10251 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
10252 AllowMultiple: false
10253 )
10254 ));
10255 }
10256 return (TargetDescriptorConfig) this;
10257 }
10258
10259
10260/// <summary>
10261/// Relative path to file(s) to compile
10262/// </summary>
10263 public virtual TargetDescriptorConfig Files(params object[] values)
10264 {
10265 if (true)
10266 {
10267 AppendArgument(new UnrealToolArgument(
10268 "-Files",
10269 Value: values != null && values.Length > 0 ? string.Join(";", values) : null,
10270 Setter: '=',
10271 Meta: new(
10272 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
10273 AllowMultiple: true
10274 )
10275 ));
10276 }
10277 return (TargetDescriptorConfig) this;
10278 }
10279
10280
10281/// <summary>
10282/// Working directory when compiling with RelativePathsToSpecificFilesToCompile
10283/// </summary>
10284 public virtual TargetDescriptorConfig WorkingDir(object val = null)
10285 {
10286 if (true)
10287 {
10288 AppendArgument(new UnrealToolArgument(
10289 "-WorkingDir",
10290 Value: val?.ToString(),
10291 Setter: '=',
10292 Meta: new(
10293 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
10294 AllowMultiple: false
10295 )
10296 ));
10297 }
10298 return (TargetDescriptorConfig) this;
10299 }
10300
10301
10302/// <summary>Will build all files that directly include any of the files provided in -SingleFile
10303/// Will build all files that directly include any of the files provided in -SingleFile, not including generated code</summary>
10304 public virtual TargetDescriptorConfig SingleFileBuildDependents(bool? val = null)
10305 {
10306 if (true)
10307 {
10308 AppendArgument(new UnrealToolArgument(
10309 "-SingleFileBuildDependents",
10310 Value: val?.ToString(),
10311 Setter: '=',
10312 Meta: new(
10313 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
10314 AllowMultiple: false
10315 )
10316 ));
10317 }
10318 return (TargetDescriptorConfig) this;
10319 }
10320
10321
10322/// <summary>
10323/// Whether to unify C++ code into larger files for faster compilation.
10324/// </summary>
10325 public virtual TargetDescriptorConfig DisableUnity(bool present = true)
10326 {
10327 if (present)
10328 {
10329 AppendArgument(new UnrealToolArgument(
10330 "-DisableUnity",
10331 Value: null,
10332 Setter: '=',
10333 Meta: new(
10334 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
10335 AllowMultiple: false
10336 )
10337 ));
10338 }
10339 return (TargetDescriptorConfig) this;
10340 }
10341
10342
10343/// <summary>
10344/// Whether to force C++ source files to be combined into larger files for faster compilation.
10345/// </summary>
10346 public virtual TargetDescriptorConfig ForceUnity(bool? val = null)
10347 {
10348 if (true)
10349 {
10350 AppendArgument(new UnrealToolArgument(
10351 "-ForceUnity",
10352 Value: val?.ToString(),
10353 Setter: '=',
10354 Meta: new(
10355 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
10356 AllowMultiple: false
10357 )
10358 ));
10359 }
10360 return (TargetDescriptorConfig) this;
10361 }
10362
10363
10364/// <summary>
10365/// Enables "include what you use" mode.
10366/// </summary>
10367 public virtual TargetDescriptorConfig IWYU(bool? val = null)
10368 {
10369 if (true)
10370 {
10371 AppendArgument(new UnrealToolArgument(
10372 "-IWYU",
10373 Value: val?.ToString(),
10374 Setter: '=',
10375 Meta: new(
10376 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
10377 AllowMultiple: false
10378 )
10379 ));
10380 }
10381 return (TargetDescriptorConfig) this;
10382 }
10383
10384
10385/// <summary>
10386/// When building a foreign plugin, whether to build plugins it depends on as well.
10387/// </summary>
10388 public virtual TargetDescriptorConfig BuildDependantPlugins(bool? val = null)
10389 {
10390 if (true)
10391 {
10392 AppendArgument(new UnrealToolArgument(
10393 "-BuildDependantPlugins",
10394 Value: val?.ToString(),
10395 Setter: '=',
10396 Meta: new(
10397 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
10398 AllowMultiple: false
10399 )
10400 ));
10401 }
10402 return (TargetDescriptorConfig) this;
10403 }
10404
10405
10406 private ToolConfig[] _configs = null;
10407 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
10408 {
10409 };
10410 }
10411
10412 protected readonly TargetDescriptorConfig TargetDescriptorStorage = new();
10413
10414/// <summary>
10415/// TargetRules is a data structure that contains the rules for defining a target (application/executable)
10416/// </summary>
10418 {
10419 public override string Name => "TargetRules";
10420 public override string CliName => "";
10421 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
10422
10423/// <summary>
10424/// Build all the modules that are valid for this target type. Used for CIS and making installed engine builds.
10425/// </summary>
10426 public virtual TargetRulesConfig AllModules(bool? val = null)
10427 {
10428 if (true)
10429 {
10430 AppendArgument(new UnrealToolArgument(
10431 "-AllModules",
10432 Value: val?.ToString(),
10433 Setter: '=',
10434 Meta: new(
10436 AllowMultiple: false
10437 )
10438 ));
10439 }
10440 return (TargetRulesConfig) this;
10441 }
10442
10443
10444/// <summary>
10445/// Additional plugins that are built for this target type but not enabled.
10446/// </summary>
10447 public virtual TargetRulesConfig BuildPlugin(params object[] values)
10448 {
10449 if (true)
10450 {
10451 AppendArgument(new UnrealToolArgument(
10452 "-BuildPlugin",
10453 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
10454 Setter: '=',
10455 Meta: new(
10457 AllowMultiple: true
10458 )
10459 ));
10460 }
10461 return (TargetRulesConfig) this;
10462 }
10463
10464
10465/// <summary>
10466/// Additional plugins that should be included for this target.
10467/// </summary>
10468 public virtual TargetRulesConfig EnablePlugin(params object[] values)
10469 {
10470 if (true)
10471 {
10472 AppendArgument(new UnrealToolArgument(
10473 "-EnablePlugin",
10474 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
10475 Setter: '=',
10476 Meta: new(
10478 AllowMultiple: true
10479 )
10480 ));
10481 }
10482 return (TargetRulesConfig) this;
10483 }
10484
10485
10486/// <summary>
10487/// List of plugins to be disabled for this target. Note that the project file may still reference them, so they should be marked
10488/// as optional to avoid failing to find them at runtime.
10489/// </summary>
10490 public virtual TargetRulesConfig DisablePlugin(params object[] values)
10491 {
10492 if (true)
10493 {
10494 AppendArgument(new UnrealToolArgument(
10495 "-DisablePlugin",
10496 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
10497 Setter: '=',
10498 Meta: new(
10500 AllowMultiple: true
10501 )
10502 ));
10503 }
10504 return (TargetRulesConfig) this;
10505 }
10506
10507
10508/// <summary>
10509/// Whether this target should be compiled as a DLL. Requires LinkType to be set to TargetLinkType.Monolithic.
10510/// </summary>
10511 public virtual TargetRulesConfig CompileAsDll(bool? val = null)
10512 {
10513 if (true)
10514 {
10515 AppendArgument(new UnrealToolArgument(
10516 "-CompileAsDll",
10517 Value: val?.ToString(),
10518 Setter: '=',
10519 Meta: new(
10521 AllowMultiple: false
10522 )
10523 ));
10524 }
10525 return (TargetRulesConfig) this;
10526 }
10527
10528
10529/// <summary>
10530/// Whether to compile the Chaos physics plugin.
10531/// </summary>
10532 public virtual TargetRulesConfig NoCompileChaos(bool present = true)
10533 {
10534 if (present)
10535 {
10536 AppendArgument(new UnrealToolArgument(
10537 "-NoCompileChaos",
10538 Value: null,
10539 Setter: '=',
10540 Meta: new(
10541 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
10542 AllowMultiple: false
10543 )
10544 ));
10545 }
10546 return (TargetRulesConfig) this;
10547 }
10548
10549
10550/// <summary>
10551/// Whether to compile the Chaos physics plugin.
10552/// </summary>
10553 public virtual TargetRulesConfig CompileChaos(bool present = true)
10554 {
10555 if (present)
10556 {
10557 AppendArgument(new UnrealToolArgument(
10558 "-CompileChaos",
10559 Value: null,
10560 Setter: '=',
10561 Meta: new(
10562 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
10563 AllowMultiple: false
10564 )
10565 ));
10566 }
10567 return (TargetRulesConfig) this;
10568 }
10569
10570
10571/// <summary>
10572/// Whether to use the Chaos physics interface. This overrides the physx flags to disable APEX and NvCloth
10573/// </summary>
10574 public virtual TargetRulesConfig NoUseChaos(bool present = true)
10575 {
10576 if (present)
10577 {
10578 AppendArgument(new UnrealToolArgument(
10579 "-NoUseChaos",
10580 Value: null,
10581 Setter: '=',
10582 Meta: new(
10583 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
10584 AllowMultiple: false
10585 )
10586 ));
10587 }
10588 return (TargetRulesConfig) this;
10589 }
10590
10591
10592/// <summary>
10593/// Whether to use the Chaos physics interface. This overrides the physx flags to disable APEX and NvCloth
10594/// </summary>
10595 public virtual TargetRulesConfig UseChaos(bool present = true)
10596 {
10597 if (present)
10598 {
10599 AppendArgument(new UnrealToolArgument(
10600 "-UseChaos",
10601 Value: null,
10602 Setter: '=',
10603 Meta: new(
10604 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
10605 AllowMultiple: false
10606 )
10607 ));
10608 }
10609 return (TargetRulesConfig) this;
10610 }
10611
10612
10613/// <summary>
10614/// Enable RTTI for all modules.
10615/// </summary>
10616 public virtual TargetRulesConfig Rtti(bool? val = null)
10617 {
10618 if (true)
10619 {
10620 AppendArgument(new UnrealToolArgument(
10621 "-rtti",
10622 Value: val?.ToString(),
10623 Setter: '=',
10624 Meta: new(
10626 AllowMultiple: false
10627 )
10628 ));
10629 }
10630 return (TargetRulesConfig) this;
10631 }
10632
10633
10634/// <summary>Enables "include what you use" by default for modules in this target. Changes the default PCH mode for any module in this project to PCHUsageMode.UseExplicitOrSharedPCHs.
10635/// Enables "include what you use" mode.</summary>
10636 public virtual TargetRulesConfig IWYU(bool? val = null)
10637 {
10638 if (true)
10639 {
10640 AppendArgument(new UnrealToolArgument(
10641 "-IWYU",
10642 Value: val?.ToString(),
10643 Setter: '=',
10644 Meta: new(
10646 AllowMultiple: false
10647 )
10648 ));
10649 }
10650 return (TargetRulesConfig) this;
10651 }
10652
10653
10654/// <summary>
10655/// Make static libraries for all engine modules as intermediates for this target.
10656/// </summary>
10657 public virtual TargetRulesConfig Precompile(bool? val = null)
10658 {
10659 if (true)
10660 {
10661 AppendArgument(new UnrealToolArgument(
10662 "-Precompile",
10663 Value: val?.ToString(),
10664 Setter: '=',
10665 Meta: new(
10667 AllowMultiple: false
10668 )
10669 ));
10670 }
10671 return (TargetRulesConfig) this;
10672 }
10673
10674
10675/// <summary>
10676/// Whether to unify C++ code into larger files for faster compilation.
10677/// </summary>
10678 public virtual TargetRulesConfig DisableUnity(bool present = true)
10679 {
10680 if (present)
10681 {
10682 AppendArgument(new UnrealToolArgument(
10683 "-DisableUnity",
10684 Value: null,
10685 Setter: '=',
10686 Meta: new(
10688 AllowMultiple: false
10689 )
10690 ));
10691 }
10692 return (TargetRulesConfig) this;
10693 }
10694
10695
10696/// <summary>
10697/// Whether to force C++ source files to be combined into larger files for faster compilation.
10698/// </summary>
10699 public virtual TargetRulesConfig ForceUnity(bool? val = null)
10700 {
10701 if (true)
10702 {
10703 AppendArgument(new UnrealToolArgument(
10704 "-ForceUnity",
10705 Value: val?.ToString(),
10706 Setter: '=',
10707 Meta: new(
10709 AllowMultiple: false
10710 )
10711 ));
10712 }
10713 return (TargetRulesConfig) this;
10714 }
10715
10716
10717/// <summary>Forces shadow variable warnings to be treated as errors on platforms that support it.
10718/// Forces shadow variable warnings to be treated as errors on platforms that support it.
10719/// MSVC -
10720/// https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4456
10721/// 4456 - declaration of 'LocalVariable' hides previous local declaration
10722/// https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4458
10723/// 4458 - declaration of 'parameter' hides class member
10724/// https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4459
10725/// 4459 - declaration of 'LocalVariable' hides global declaration
10726/// Clang -
10727/// https://clang.llvm.org/docs/DiagnosticsReference.html#wshadow</summary>
10729 {
10730 if (true)
10731 {
10732 AppendArgument(new UnrealToolArgument(
10733 "-ShadowVariableErrors",
10734 Value: val?.ToString(),
10735 Setter: '=',
10736 Meta: new(
10738 AllowMultiple: false
10739 )
10740 ));
10741 }
10742 return (TargetRulesConfig) this;
10743 }
10744
10745
10746/// <summary>
10747/// New Monolithic Graphics drivers have optional "fast calls" replacing various D3d functions
10748/// </summary>
10749 public virtual TargetRulesConfig FastMonoCalls(bool present = true)
10750 {
10751 if (present)
10752 {
10753 AppendArgument(new UnrealToolArgument(
10754 "-FastMonoCalls",
10755 Value: null,
10756 Setter: '=',
10757 Meta: new(
10759 AllowMultiple: false
10760 )
10761 ));
10762 }
10763 return (TargetRulesConfig) this;
10764 }
10765
10766
10767/// <summary>
10768/// New Monolithic Graphics drivers have optional "fast calls" replacing various D3d functions
10769/// </summary>
10770 public virtual TargetRulesConfig NoFastMonoCalls(bool present = true)
10771 {
10772 if (present)
10773 {
10774 AppendArgument(new UnrealToolArgument(
10775 "-NoFastMonoCalls",
10776 Value: null,
10777 Setter: '=',
10778 Meta: new(
10780 AllowMultiple: false
10781 )
10782 ));
10783 }
10784 return (TargetRulesConfig) this;
10785 }
10786
10787
10788/// <summary>
10789/// Whether to stress test the C++ unity build robustness by including all C++ files files in a project from a single unified file.
10790/// </summary>
10791 public virtual TargetRulesConfig StressTestUnity(bool? val = null)
10792 {
10793 if (true)
10794 {
10795 AppendArgument(new UnrealToolArgument(
10796 "-StressTestUnity",
10797 Value: val?.ToString(),
10798 Setter: '=',
10799 Meta: new(
10801 AllowMultiple: false
10802 )
10803 ));
10804 }
10805 return (TargetRulesConfig) this;
10806 }
10807
10808
10809/// <summary>
10810/// Whether to force debug info to be generated.
10811/// </summary>
10812 public virtual TargetRulesConfig ForceDebugInfo(bool? val = null)
10813 {
10814 if (true)
10815 {
10816 AppendArgument(new UnrealToolArgument(
10817 "-ForceDebugInfo",
10818 Value: val?.ToString(),
10819 Setter: '=',
10820 Meta: new(
10822 AllowMultiple: false
10823 )
10824 ));
10825 }
10826 return (TargetRulesConfig) this;
10827 }
10828
10829
10830/// <summary>Whether to globally disable debug info generation; see DebugInfoHeuristics.cs for per-config and per-platform options.
10831/// How much debug info should be generated. See DebugInfoMode enum for more details</summary>
10832 public virtual TargetRulesConfig NoDebugInfo(bool? val = null)
10833 {
10834 if (true)
10835 {
10836 AppendArgument(new UnrealToolArgument(
10837 "-NoDebugInfo",
10838 Value: val?.ToString(),
10839 Setter: '=',
10840 Meta: new(
10842 AllowMultiple: false
10843 )
10844 ));
10845 }
10846 return (TargetRulesConfig) this;
10847 }
10848
10849
10850/// <summary>
10851/// Whether PDB files should be used for Visual C++ builds.
10852/// </summary>
10853 public virtual TargetRulesConfig NoPDB(bool present = true)
10854 {
10855 if (present)
10856 {
10857 AppendArgument(new UnrealToolArgument(
10858 "-NoPDB",
10859 Value: null,
10860 Setter: '=',
10861 Meta: new(
10863 AllowMultiple: false
10864 )
10865 ));
10866 }
10867 return (TargetRulesConfig) this;
10868 }
10869
10870
10871/// <summary>
10872/// Whether PCH files should be used.
10873/// </summary>
10874 public virtual TargetRulesConfig NoPCH(bool present = true)
10875 {
10876 if (present)
10877 {
10878 AppendArgument(new UnrealToolArgument(
10879 "-NoPCH",
10880 Value: null,
10881 Setter: '=',
10882 Meta: new(
10884 AllowMultiple: false
10885 )
10886 ));
10887 }
10888 return (TargetRulesConfig) this;
10889 }
10890
10891
10892/// <summary>
10893/// Whether to just preprocess source files for this target, and skip compilation
10894/// </summary>
10895 public virtual TargetRulesConfig Preprocess(bool? val = null)
10896 {
10897 if (true)
10898 {
10899 AppendArgument(new UnrealToolArgument(
10900 "-Preprocess",
10901 Value: val?.ToString(),
10902 Setter: '=',
10903 Meta: new(
10905 AllowMultiple: false
10906 )
10907 ));
10908 }
10909 return (TargetRulesConfig) this;
10910 }
10911
10912
10913/// <summary>
10914/// Whether to use incremental linking or not. Incremental linking can yield faster iteration times when making small changes.
10915/// Currently disabled by default because it tends to behave a bit buggy on some computers (PDB-related compile errors).
10916/// </summary>
10917 public virtual TargetRulesConfig IncrementalLinking(bool? val = null)
10918 {
10919 if (true)
10920 {
10921 AppendArgument(new UnrealToolArgument(
10922 "-IncrementalLinking",
10923 Value: val?.ToString(),
10924 Setter: '=',
10925 Meta: new(
10927 AllowMultiple: false
10928 )
10929 ));
10930 }
10931 return (TargetRulesConfig) this;
10932 }
10933
10934
10935/// <summary>
10936/// Whether to use incremental linking or not. Incremental linking can yield faster iteration times when making small changes.
10937/// Currently disabled by default because it tends to behave a bit buggy on some computers (PDB-related compile errors).
10938/// </summary>
10939 public virtual TargetRulesConfig NoIncrementalLinking(bool present = true)
10940 {
10941 if (present)
10942 {
10943 AppendArgument(new UnrealToolArgument(
10944 "-NoIncrementalLinking",
10945 Value: null,
10946 Setter: '=',
10947 Meta: new(
10949 AllowMultiple: false
10950 )
10951 ));
10952 }
10953 return (TargetRulesConfig) this;
10954 }
10955
10956
10957/// <summary>
10958/// Whether to allow the use of link time code generation (LTCG).
10959/// </summary>
10960 public virtual TargetRulesConfig LTCG(bool? val = null)
10961 {
10962 if (true)
10963 {
10964 AppendArgument(new UnrealToolArgument(
10965 "-LTCG",
10966 Value: val?.ToString(),
10967 Setter: '=',
10968 Meta: new(
10970 AllowMultiple: false
10971 )
10972 ));
10973 }
10974 return (TargetRulesConfig) this;
10975 }
10976
10977
10978/// <summary>
10979/// Whether to enable Profile Guided Optimization (PGO) instrumentation in this build.
10980/// </summary>
10981 public virtual TargetRulesConfig PGOProfile(bool present = true)
10982 {
10983 if (present)
10984 {
10985 AppendArgument(new UnrealToolArgument(
10986 "-PGOProfile",
10987 Value: null,
10988 Setter: '=',
10989 Meta: new(
10991 AllowMultiple: false
10992 )
10993 ));
10994 }
10995 return (TargetRulesConfig) this;
10996 }
10997
10998
10999/// <summary>
11000/// Whether to optimize this build with Profile Guided Optimization (PGO).
11001/// </summary>
11002 public virtual TargetRulesConfig PGOOptimize(bool present = true)
11003 {
11004 if (present)
11005 {
11006 AppendArgument(new UnrealToolArgument(
11007 "-PGOOptimize",
11008 Value: null,
11009 Setter: '=',
11010 Meta: new(
11012 AllowMultiple: false
11013 )
11014 ));
11015 }
11016 return (TargetRulesConfig) this;
11017 }
11018
11019
11020/// <summary>
11021/// Enables "Shared PCHs", a feature which significantly speeds up compile times by attempting to
11022/// share certain PCH files between modules that UBT detects is including those PCH's header files.
11023/// </summary>
11024 public virtual TargetRulesConfig NoSharedPCH(bool present = true)
11025 {
11026 if (present)
11027 {
11028 AppendArgument(new UnrealToolArgument(
11029 "-NoSharedPCH",
11030 Value: null,
11031 Setter: '=',
11032 Meta: new(
11034 AllowMultiple: false
11035 )
11036 ));
11037 }
11038 return (TargetRulesConfig) this;
11039 }
11040
11041
11042/// <summary>
11043/// Whether to use the :FASTLINK option when building with /DEBUG to create local PDBs on Windows. Fast, but currently seems to have problems finding symbols in the debugger.
11044/// </summary>
11045 public virtual TargetRulesConfig FastPDB(bool? val = null)
11046 {
11047 if (true)
11048 {
11049 AppendArgument(new UnrealToolArgument(
11050 "-FastPDB",
11051 Value: val?.ToString(),
11052 Setter: '=',
11053 Meta: new(
11055 AllowMultiple: false
11056 )
11057 ));
11058 }
11059 return (TargetRulesConfig) this;
11060 }
11061
11062
11063/// <summary>
11064/// Outputs a map file as part of the build.
11065/// </summary>
11066 public virtual TargetRulesConfig MapFile(bool? val = null)
11067 {
11068 if (true)
11069 {
11070 AppendArgument(new UnrealToolArgument(
11071 "-MapFile",
11072 Value: val?.ToString(),
11073 Setter: '=',
11074 Meta: new(
11076 AllowMultiple: false
11077 )
11078 ));
11079 }
11080 return (TargetRulesConfig) this;
11081 }
11082
11083
11084/// <summary>
11085/// Bundle version for Mac apps.
11086/// </summary>
11087 public virtual TargetRulesConfig BundleVersion(object val = null)
11088 {
11089 if (true)
11090 {
11091 AppendArgument(new UnrealToolArgument(
11092 "-BundleVersion",
11093 Value: val?.ToString(),
11094 Setter: '=',
11095 Meta: new(
11097 AllowMultiple: false
11098 )
11099 ));
11100 }
11101 return (TargetRulesConfig) this;
11102 }
11103
11104
11105/// <summary>
11106/// Whether to deploy the executable after compilation on platforms that require deployment.
11107/// </summary>
11108 public virtual TargetRulesConfig Deploy(bool? val = null)
11109 {
11110 if (true)
11111 {
11112 AppendArgument(new UnrealToolArgument(
11113 "-Deploy",
11114 Value: val?.ToString(),
11115 Setter: '=',
11116 Meta: new(
11118 AllowMultiple: false
11119 )
11120 ));
11121 }
11122 return (TargetRulesConfig) this;
11123 }
11124
11125
11126/// <summary>
11127/// Whether to force skipping deployment for platforms that require deployment by default.
11128/// </summary>
11129 public virtual TargetRulesConfig SkipDeploy(bool? val = null)
11130 {
11131 if (true)
11132 {
11133 AppendArgument(new UnrealToolArgument(
11134 "-SkipDeploy",
11135 Value: val?.ToString(),
11136 Setter: '=',
11137 Meta: new(
11139 AllowMultiple: false
11140 )
11141 ));
11142 }
11143 return (TargetRulesConfig) this;
11144 }
11145
11146
11147/// <summary>
11148/// Whether to disable linking for this target.
11149/// </summary>
11150 public virtual TargetRulesConfig NoLink(bool? val = null)
11151 {
11152 if (true)
11153 {
11154 AppendArgument(new UnrealToolArgument(
11155 "-NoLink",
11156 Value: val?.ToString(),
11157 Setter: '=',
11158 Meta: new(
11160 AllowMultiple: false
11161 )
11162 ));
11163 }
11164 return (TargetRulesConfig) this;
11165 }
11166
11167
11168/// <summary>Indicates that this is a formal build, intended for distribution. This flag is automatically set to true when Build.version has a changelist set.
11169/// The only behavior currently bound to this flag is to compile the default resource file separately for each binary so that the OriginalFilename field is set correctly.
11170/// By default, we only compile the resource once to reduce build times.
11171/// Indicates that this is a formal build, intended for distribution. This flag is automatically set to true when Build.version has a changelist set and is a promoted build.
11172/// The only behavior currently bound to this flag is to compile the default resource file separately for each binary so that the OriginalFilename field is set correctly.
11173/// By default, we only compile the resource once to reduce build times.</summary>
11174 public virtual TargetRulesConfig Formal(bool? val = null)
11175 {
11176 if (true)
11177 {
11178 AppendArgument(new UnrealToolArgument(
11179 "-Formal",
11180 Value: val?.ToString(),
11181 Setter: '=',
11182 Meta: new(
11184 AllowMultiple: false
11185 )
11186 ));
11187 }
11188 return (TargetRulesConfig) this;
11189 }
11190
11191
11192/// <summary>
11193/// Whether to clean Builds directory on a remote Mac before building.
11194/// </summary>
11195 public virtual TargetRulesConfig FlushMac(bool? val = null)
11196 {
11197 if (true)
11198 {
11199 AppendArgument(new UnrealToolArgument(
11200 "-FlushMac",
11201 Value: val?.ToString(),
11202 Setter: '=',
11203 Meta: new(
11205 AllowMultiple: false
11206 )
11207 ));
11208 }
11209 return (TargetRulesConfig) this;
11210 }
11211
11212
11213/// <summary>
11214/// Whether to write detailed timing info from the compiler and linker.
11215/// </summary>
11216 public virtual TargetRulesConfig Timing(bool? val = null)
11217 {
11218 if (true)
11219 {
11220 AppendArgument(new UnrealToolArgument(
11221 "-Timing",
11222 Value: val?.ToString(),
11223 Setter: '=',
11224 Meta: new(
11226 AllowMultiple: false
11227 )
11228 ));
11229 }
11230 return (TargetRulesConfig) this;
11231 }
11232
11233
11234/// <summary>
11235/// Whether to parse timing data into a tracing file compatible with chrome://tracing.
11236/// </summary>
11237 public virtual TargetRulesConfig Tracing(bool? val = null)
11238 {
11239 if (true)
11240 {
11241 AppendArgument(new UnrealToolArgument(
11242 "-Tracing",
11243 Value: val?.ToString(),
11244 Setter: '=',
11245 Meta: new(
11247 AllowMultiple: false
11248 )
11249 ));
11250 }
11251 return (TargetRulesConfig) this;
11252 }
11253
11254
11255/// <summary>
11256/// Whether to expose all symbols as public by default on POSIX platforms
11257/// </summary>
11258 public virtual TargetRulesConfig PublicSymbolsByDefault(bool? val = null)
11259 {
11260 if (true)
11261 {
11262 AppendArgument(new UnrealToolArgument(
11263 "-PublicSymbolsByDefault",
11264 Value: val?.ToString(),
11265 Setter: '=',
11266 Meta: new(
11268 AllowMultiple: false
11269 )
11270 ));
11271 }
11272 return (TargetRulesConfig) this;
11273 }
11274
11275
11276/// <summary>
11277/// Allows overriding the toolchain to be created for this target. This must match the name of a class declared in the UnrealBuildTool assembly.
11278/// </summary>
11279 public virtual TargetRulesConfig ToolChain(object val = null)
11280 {
11281 if (true)
11282 {
11283 AppendArgument(new UnrealToolArgument(
11284 "-ToolChain",
11285 Value: val?.ToString(),
11286 Setter: '=',
11287 Meta: new(
11289 AllowMultiple: false
11290 )
11291 ));
11292 }
11293 return (TargetRulesConfig) this;
11294 }
11295
11296
11297/// <summary>Which C++ stanard to use for compiling this target
11298/// Which C++ standard to use for compiling this target (for non-engine modules)</summary>
11299 public virtual TargetRulesConfig CppStd(CppStandardVersion? val = null)
11300 {
11301 if (true)
11302 {
11303 AppendArgument(new UnrealToolArgument(
11304 "-CppStd",
11305 Value: val?.ToString(),
11306 Setter: '=',
11307 Meta: new(
11309 AllowMultiple: false
11310 )
11311 ));
11312 }
11313 return (TargetRulesConfig) this;
11314 }
11315
11316
11317/// <summary>
11318/// Do not allow manifest changes when building this target. Used to cause earlier errors when building multiple targets with a shared build environment.
11319/// </summary>
11320 public virtual TargetRulesConfig NoManifestChanges(bool? val = null)
11321 {
11322 if (true)
11323 {
11324 AppendArgument(new UnrealToolArgument(
11325 "-NoManifestChanges",
11326 Value: val?.ToString(),
11327 Setter: '=',
11328 Meta: new(
11330 AllowMultiple: false
11331 )
11332 ));
11333 }
11334 return (TargetRulesConfig) this;
11335 }
11336
11337
11338/// <summary>
11339/// The build version string
11340/// </summary>
11341 public virtual TargetRulesConfig BuildVersion(object val = null)
11342 {
11343 if (true)
11344 {
11345 AppendArgument(new UnrealToolArgument(
11346 "-BuildVersion",
11347 Value: val?.ToString(),
11348 Setter: '=',
11349 Meta: new(
11351 AllowMultiple: false
11352 )
11353 ));
11354 }
11355 return (TargetRulesConfig) this;
11356 }
11357
11358
11359/// <summary>
11360/// Backing storage for the LinkType property.
11361/// </summary>
11362 public virtual TargetRulesConfig Monolithic(bool present = true)
11363 {
11364 if (present)
11365 {
11366 AppendArgument(new UnrealToolArgument(
11367 "-Monolithic",
11368 Value: null,
11369 Setter: '=',
11370 Meta: new(
11372 AllowMultiple: false
11373 )
11374 ));
11375 }
11376 return (TargetRulesConfig) this;
11377 }
11378
11379
11380/// <summary>
11381/// Backing storage for the LinkType property.
11382/// </summary>
11383 public virtual TargetRulesConfig Modular(bool present = true)
11384 {
11385 if (present)
11386 {
11387 AppendArgument(new UnrealToolArgument(
11388 "-Modular",
11389 Value: null,
11390 Setter: '=',
11391 Meta: new(
11393 AllowMultiple: false
11394 )
11395 ));
11396 }
11397 return (TargetRulesConfig) this;
11398 }
11399
11400
11401/// <summary>
11402/// Macros to define globally across the whole target.
11403/// </summary>
11404 public virtual TargetRulesConfig Define(params object[] values)
11405 {
11406 if (true)
11407 {
11408 if (values != null)
11409 foreach (var val in values)
11410 {
11411 AppendArgument(new UnrealToolArgument(
11412 "-Define",
11413 Value: val.ToString(),
11414 Setter: ':',
11415 Meta: new(
11417 AllowMultiple: true
11418 )
11419 ));
11420 }
11421 }
11422 return (TargetRulesConfig) this;
11423 }
11424
11425
11426/// <summary>
11427/// Macros to define across all macros in the project.
11428/// </summary>
11429 public virtual TargetRulesConfig ProjectDefine(params object[] values)
11430 {
11431 if (true)
11432 {
11433 if (values != null)
11434 foreach (var val in values)
11435 {
11436 AppendArgument(new UnrealToolArgument(
11437 "-ProjectDefine",
11438 Value: val.ToString(),
11439 Setter: ':',
11440 Meta: new(
11442 AllowMultiple: true
11443 )
11444 ));
11445 }
11446 }
11447 return (TargetRulesConfig) this;
11448 }
11449
11450
11451/// <summary>
11452/// Path to a manifest to output for this target
11453/// </summary>
11454 public virtual TargetRulesConfig Manifest(params object[] values)
11455 {
11456 if (true)
11457 {
11458 if (values != null)
11459 foreach (var val in values)
11460 {
11461 AppendArgument(new UnrealToolArgument(
11462 "-Manifest",
11463 Value: val.ToString(),
11464 Setter: '=',
11465 Meta: new(
11467 AllowMultiple: true
11468 )
11469 ));
11470 }
11471 }
11472 return (TargetRulesConfig) this;
11473 }
11474
11475
11476/// <summary>
11477/// Path to a list of dependencies for this target, when precompiling
11478/// </summary>
11479 public virtual TargetRulesConfig DependencyList(params object[] values)
11480 {
11481 if (true)
11482 {
11483 if (values != null)
11484 foreach (var val in values)
11485 {
11486 AppendArgument(new UnrealToolArgument(
11487 "-DependencyList",
11488 Value: val.ToString(),
11489 Setter: '=',
11490 Meta: new(
11492 AllowMultiple: true
11493 )
11494 ));
11495 }
11496 }
11497 return (TargetRulesConfig) this;
11498 }
11499
11500
11501/// <summary>
11502/// Backing storage for the BuildEnvironment property
11503/// </summary>
11504 public virtual TargetRulesConfig SharedBuildEnvironment(bool present = true)
11505 {
11506 if (present)
11507 {
11508 AppendArgument(new UnrealToolArgument(
11509 "-SharedBuildEnvironment",
11510 Value: null,
11511 Setter: '=',
11512 Meta: new(
11514 AllowMultiple: false
11515 )
11516 ));
11517 }
11518 return (TargetRulesConfig) this;
11519 }
11520
11521
11522/// <summary>
11523/// Backing storage for the BuildEnvironment property
11524/// </summary>
11525 public virtual TargetRulesConfig UniqueBuildEnvironment(bool present = true)
11526 {
11527 if (present)
11528 {
11529 AppendArgument(new UnrealToolArgument(
11530 "-UniqueBuildEnvironment",
11531 Value: null,
11532 Setter: '=',
11533 Meta: new(
11535 AllowMultiple: false
11536 )
11537 ));
11538 }
11539 return (TargetRulesConfig) this;
11540 }
11541
11542
11543/// <summary>
11544/// Whether to ignore violations to the shared build environment (eg. editor targets modifying definitions)
11545/// </summary>
11546 public virtual TargetRulesConfig OverrideBuildEnvironment(bool? val = null)
11547 {
11548 if (true)
11549 {
11550 AppendArgument(new UnrealToolArgument(
11551 "-OverrideBuildEnvironment",
11552 Value: val?.ToString(),
11553 Setter: '=',
11554 Meta: new(
11556 AllowMultiple: false
11557 )
11558 ));
11559 }
11560 return (TargetRulesConfig) this;
11561 }
11562
11563
11564/// <summary>
11565/// Additional arguments to pass to the compiler
11566/// </summary>
11567 public virtual TargetRulesConfig CompilerArguments(object val = null)
11568 {
11569 if (true)
11570 {
11571 AppendArgument(new UnrealToolArgument(
11572 "-CompilerArguments",
11573 Value: val?.ToString(),
11574 Setter: '=',
11575 Meta: new(
11577 AllowMultiple: false
11578 )
11579 ));
11580 }
11581 return (TargetRulesConfig) this;
11582 }
11583
11584
11585/// <summary>
11586/// Additional arguments to pass to the linker
11587/// </summary>
11588 public virtual TargetRulesConfig LinkerArguments(object val = null)
11589 {
11590 if (true)
11591 {
11592 AppendArgument(new UnrealToolArgument(
11593 "-LinkerArguments",
11594 Value: val?.ToString(),
11595 Setter: '=',
11596 Meta: new(
11598 AllowMultiple: false
11599 )
11600 ));
11601 }
11602 return (TargetRulesConfig) this;
11603 }
11604
11605
11606/// <summary>
11607/// Whether to use the verse script interface.
11608/// </summary>
11609 public virtual TargetRulesConfig NoUseVerse(bool present = true)
11610 {
11611 if (present)
11612 {
11613 AppendArgument(new UnrealToolArgument(
11614 "-NoUseVerse",
11615 Value: null,
11616 Setter: '=',
11617 Meta: new(
11618 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
11619 AllowMultiple: false
11620 )
11621 ));
11622 }
11623 return (TargetRulesConfig) this;
11624 }
11625
11626
11627/// <summary>
11628/// Whether to use the verse script interface.
11629/// </summary>
11630 public virtual TargetRulesConfig UseVerse(bool present = true)
11631 {
11632 if (present)
11633 {
11634 AppendArgument(new UnrealToolArgument(
11635 "-UseVerse",
11636 Value: null,
11637 Setter: '=',
11638 Meta: new(
11639 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
11640 AllowMultiple: false
11641 )
11642 ));
11643 }
11644 return (TargetRulesConfig) this;
11645 }
11646
11647
11648/// <summary>Use a heuristic to determine which files are currently being iterated on and exclude them from unity blobs, result in faster
11649/// incremental compile times. The current implementation uses the read-only flag to distinguish the working set, assuming that files will
11650/// be made writable by the source control system if they are being modified. This is true for Perforce, but not for Git.
11651/// Use a heuristic to determine which files are currently being iterated on and exclude them from unity blobs. This results in faster
11652/// incremental compile times. For Perforce repositories, the current implementation uses the read-only flag to distinguish the working
11653/// set, assuming that files will be made writable by the source control system if they are being modified. For Git repositories, the
11654/// implementation uses the git status command. Source code archives downloaded from Git as .zip files are not supported.</summary>
11655 public virtual TargetRulesConfig DisableAdaptiveUnity(bool present = true)
11656 {
11657 if (present)
11658 {
11659 AppendArgument(new UnrealToolArgument(
11660 "-DisableAdaptiveUnity",
11661 Value: null,
11662 Setter: '=',
11663 Meta: new(
11664 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
11665 AllowMultiple: false
11666 )
11667 ));
11668 }
11669 return (TargetRulesConfig) this;
11670 }
11671
11672
11673/// <summary>Whether to enable all warnings as errors. UE enables most warnings as errors already, but disables a few (such as deprecation warnings).
11674/// Treat warnings as errors</summary>
11675 public virtual TargetRulesConfig WarningsAsErrors(bool? val = null)
11676 {
11677 if (true)
11678 {
11679 AppendArgument(new UnrealToolArgument(
11680 "-WarningsAsErrors",
11681 Value: val?.ToString(),
11682 Setter: '=',
11683 Meta: new(
11684 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
11685 AllowMultiple: false
11686 )
11687 ));
11688 }
11689 return (TargetRulesConfig) this;
11690 }
11691
11692
11693/// <summary>
11694/// When Link Time Code Generation (LTCG) is enabled, whether to
11695/// prefer using the lighter weight version on supported platforms.
11696/// </summary>
11697 public virtual TargetRulesConfig ThinLTO(bool? val = null)
11698 {
11699 if (true)
11700 {
11701 AppendArgument(new UnrealToolArgument(
11702 "-ThinLTO",
11703 Value: val?.ToString(),
11704 Setter: '=',
11705 Meta: new(
11706 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
11707 AllowMultiple: false
11708 )
11709 ));
11710 }
11711 return (TargetRulesConfig) this;
11712 }
11713
11714
11715/// <summary>
11716/// Override the name used for this target
11717/// </summary>
11718 public virtual TargetRulesConfig TargetNameOverride(object val = null)
11719 {
11720 if (true)
11721 {
11722 AppendArgument(new UnrealToolArgument(
11723 "-TargetNameOverride",
11724 Value: val?.ToString(),
11725 Setter: '=',
11726 Meta: new(
11727 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
11728 AllowMultiple: false
11729 )
11730 ));
11731 }
11732 return (TargetRulesConfig) this;
11733 }
11734
11735
11736/// <summary>
11737/// Force the include order to a specific version. Overrides any Target and Module rules.
11738/// </summary>
11740 {
11741 if (true)
11742 {
11743 AppendArgument(new UnrealToolArgument(
11744 "-ForceIncludeOrder",
11745 Value: val?.ToString(),
11746 Setter: '=',
11747 Meta: new(
11748 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
11749 AllowMultiple: false
11750 )
11751 ));
11752 }
11753 return (TargetRulesConfig) this;
11754 }
11755
11756
11757/// <summary>
11758/// Whether to use Iris.
11759/// </summary>
11760 public virtual TargetRulesConfig NoUseIris(bool present = true)
11761 {
11762 if (present)
11763 {
11764 AppendArgument(new UnrealToolArgument(
11765 "-NoUseIris",
11766 Value: null,
11767 Setter: '=',
11768 Meta: new(
11769 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6,
11770 AllowMultiple: false
11771 )
11772 ));
11773 }
11774 return (TargetRulesConfig) this;
11775 }
11776
11777
11778/// <summary>
11779/// Whether to use Iris.
11780/// </summary>
11781 public virtual TargetRulesConfig UseIris(bool present = true)
11782 {
11783 if (present)
11784 {
11785 AppendArgument(new UnrealToolArgument(
11786 "-UseIris",
11787 Value: null,
11788 Setter: '=',
11789 Meta: new(
11790 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6,
11791 AllowMultiple: false
11792 )
11793 ));
11794 }
11795 return (TargetRulesConfig) this;
11796 }
11797
11798
11799
11800 public virtual TargetRulesConfig TrustedServer(bool present = true)
11801 {
11802 if (present)
11803 {
11804 AppendArgument(new UnrealToolArgument(
11805 "-TrustedServer",
11806 Value: null,
11807 Setter: '=',
11808 Meta: new(
11809 Compatibility: UnrealCompatibility.UE_5_1,
11810 AllowMultiple: false
11811 )
11812 ));
11813 }
11814 return (TargetRulesConfig) this;
11815 }
11816
11817
11818
11819 public virtual TargetRulesConfig NoTrustedServer(bool present = true)
11820 {
11821 if (present)
11822 {
11823 AppendArgument(new UnrealToolArgument(
11824 "-NoTrustedServer",
11825 Value: null,
11826 Setter: '=',
11827 Meta: new(
11828 Compatibility: UnrealCompatibility.UE_5_1,
11829 AllowMultiple: false
11830 )
11831 ));
11832 }
11833 return (TargetRulesConfig) this;
11834 }
11835
11836
11837/// <summary>
11838/// Whether to merge module and generated unity files for faster compilation.
11839/// </summary>
11840 public virtual TargetRulesConfig DisableMergingUnityFiles(bool present = true)
11841 {
11842 if (present)
11843 {
11844 AppendArgument(new UnrealToolArgument(
11845 "-DisableMergingUnityFiles",
11846 Value: null,
11847 Setter: '=',
11848 Meta: new(
11849 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
11850 AllowMultiple: false
11851 )
11852 ));
11853 }
11854 return (TargetRulesConfig) this;
11855 }
11856
11857
11858/// <summary>
11859/// Forces frame pointers to be retained this is usually required when you want reliable callstacks e.g. mallocframeprofiler
11860/// </summary>
11861 public virtual TargetRulesConfig RetainFramePointers(bool present = true)
11862 {
11863 if (present)
11864 {
11865 AppendArgument(new UnrealToolArgument(
11866 "-RetainFramePointers",
11867 Value: null,
11868 Setter: '=',
11869 Meta: new(
11870 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
11871 AllowMultiple: false
11872 )
11873 ));
11874 }
11875 return (TargetRulesConfig) this;
11876 }
11877
11878
11879/// <summary>
11880/// Forces frame pointers to be retained this is usually required when you want reliable callstacks e.g. mallocframeprofiler
11881/// </summary>
11882 public virtual TargetRulesConfig NoRetainFramePointers(bool present = true)
11883 {
11884 if (present)
11885 {
11886 AppendArgument(new UnrealToolArgument(
11887 "-NoRetainFramePointers",
11888 Value: null,
11889 Setter: '=',
11890 Meta: new(
11891 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
11892 AllowMultiple: false
11893 )
11894 ));
11895 }
11896 return (TargetRulesConfig) this;
11897 }
11898
11899
11900/// <summary>
11901/// An approximate number of bytes of C++ code to target for inclusion in a single unified C++ file.
11902/// </summary>
11903 public virtual TargetRulesConfig BytesPerUnityCPP(double? val = null)
11904 {
11905 if (true)
11906 {
11907 AppendArgument(new UnrealToolArgument(
11908 "-BytesPerUnityCPP",
11909 Value: val?.ToString(),
11910 Setter: '=',
11911 Meta: new(
11912 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
11913 AllowMultiple: false
11914 )
11915 ));
11916 }
11917 return (TargetRulesConfig) this;
11918 }
11919
11920
11921/// <summary>Whether to add additional information to the unity files, such as '_of_X' in the file name.
11922/// Whether to add additional information to the unity files, such as '_of_X' in the file name. Not recommended.</summary>
11923 public virtual TargetRulesConfig DetailedUnityFiles(bool present = true)
11924 {
11925 if (present)
11926 {
11927 AppendArgument(new UnrealToolArgument(
11928 "-DetailedUnityFiles",
11929 Value: null,
11930 Setter: '=',
11931 Meta: new(
11932 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5,
11933 AllowMultiple: false
11934 )
11935 ));
11936 }
11937 return (TargetRulesConfig) this;
11938 }
11939
11940
11941/// <summary>Whether to add additional information to the unity files, such as '_of_X' in the file name.
11942/// Whether to add additional information to the unity files, such as '_of_X' in the file name. Not recommended.</summary>
11943 public virtual TargetRulesConfig NoDetailedUnityFiles(bool present = true)
11944 {
11945 if (present)
11946 {
11947 AppendArgument(new UnrealToolArgument(
11948 "-NoDetailedUnityFiles",
11949 Value: null,
11950 Setter: '=',
11951 Meta: new(
11952 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5,
11953 AllowMultiple: false
11954 )
11955 ));
11956 }
11957 return (TargetRulesConfig) this;
11958 }
11959
11960
11961/// <summary>Force set flags require for determinstic compiling and linking (experimental, may not be fully supported).
11962/// This setting is only recommended for testing, instead:
11963/// * Set bDeterministic on a per module basis in ModuleRules to control deterministic compiling.
11964/// * Set bDeterministic on a per target basis in TargetRules to control deterministic linking.
11965/// Set flags require for deterministic compiling and linking.
11966/// Enabling deterministic mode for msvc disables codegen multithreading so compiling will be slower</summary>
11967 public virtual TargetRulesConfig Deterministic(bool? val = null)
11968 {
11969 if (true)
11970 {
11971 AppendArgument(new UnrealToolArgument(
11972 "-Deterministic",
11973 Value: val?.ToString(),
11974 Setter: '=',
11975 Meta: new(
11976 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
11977 AllowMultiple: false
11978 )
11979 ));
11980 }
11981 return (TargetRulesConfig) this;
11982 }
11983
11984
11985/// <summary>
11986/// Generate dependency files by preprocessing. This is only recommended when distributing builds as it adds additional overhead.
11987/// </summary>
11988 public virtual TargetRulesConfig PreprocessDepends(bool? val = null)
11989 {
11990 if (true)
11991 {
11992 AppendArgument(new UnrealToolArgument(
11993 "-PreprocessDepends",
11994 Value: val?.ToString(),
11995 Setter: '=',
11996 Meta: new(
11997 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
11998 AllowMultiple: false
11999 )
12000 ));
12001 }
12002 return (TargetRulesConfig) this;
12003 }
12004
12005
12006/// <summary>Whether static code analysis should be enabled.
12007/// The static analyzer to use.</summary>
12009 {
12010 if (true)
12011 {
12012 AppendArgument(new UnrealToolArgument(
12013 "-StaticAnalyzer",
12014 Value: val?.ToString(),
12015 Setter: '=',
12016 Meta: new(
12017 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12018 AllowMultiple: false
12019 )
12020 ));
12021 }
12022 return (TargetRulesConfig) this;
12023 }
12024
12025
12026/// <summary>
12027/// The output type to use for the static analyzer. This is only supported for Clang.
12028/// </summary>
12030 {
12031 if (true)
12032 {
12033 AppendArgument(new UnrealToolArgument(
12034 "-StaticAnalyzerOutputType",
12035 Value: val?.ToString(),
12036 Setter: '=',
12037 Meta: new(
12038 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12039 AllowMultiple: false
12040 )
12041 ));
12042 }
12043 return (TargetRulesConfig) this;
12044 }
12045
12046
12047/// <summary>
12048/// The mode to use for the static analyzer. This is only supported for Clang.
12049/// Shallow mode completes quicker but is generally not recommended.
12050/// </summary>
12052 {
12053 if (true)
12054 {
12055 AppendArgument(new UnrealToolArgument(
12056 "-StaticAnalyzerMode",
12057 Value: val?.ToString(),
12058 Setter: '=',
12059 Meta: new(
12060 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12061 AllowMultiple: false
12062 )
12063 ));
12064 }
12065 return (TargetRulesConfig) this;
12066 }
12067
12068
12069/// <summary>
12070/// Package full path (directory + filename) where to store input files used at link time
12071/// Normally used to debug a linker crash for platforms that support it
12072/// </summary>
12073 public virtual TargetRulesConfig PackagePath(object val = null)
12074 {
12075 if (true)
12076 {
12077 AppendArgument(new UnrealToolArgument(
12078 "-PackagePath",
12079 Value: val?.ToString(),
12080 Setter: '=',
12081 Meta: new(
12082 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12083 AllowMultiple: false
12084 )
12085 ));
12086 }
12087 return (TargetRulesConfig) this;
12088 }
12089
12090
12091/// <summary>
12092/// Directory where to put crash report files for platforms that support it
12093/// </summary>
12094 public virtual TargetRulesConfig CrashDiagnosticDirectory(object val = null)
12095 {
12096 if (true)
12097 {
12098 AppendArgument(new UnrealToolArgument(
12099 "-CrashDiagnosticDirectory",
12100 Value: val?.ToString(),
12101 Setter: '=',
12102 Meta: new(
12103 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12104 AllowMultiple: false
12105 )
12106 ));
12107 }
12108 return (TargetRulesConfig) this;
12109 }
12110
12111
12112/// <summary>
12113/// Disable supports for inlining gen.cpps
12114/// </summary>
12115 public virtual TargetRulesConfig DisableInliningGenCpps(bool? val = null)
12116 {
12117 if (true)
12118 {
12119 AppendArgument(new UnrealToolArgument(
12120 "-DisableInliningGenCpps",
12121 Value: val?.ToString(),
12122 Setter: '=',
12123 Meta: new(
12124 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
12125 AllowMultiple: false
12126 )
12127 ));
12128 }
12129 return (TargetRulesConfig) this;
12130 }
12131
12132
12133/// <summary>
12134/// Which C standard to use for compiling this target
12135/// </summary>
12136 public virtual TargetRulesConfig CStd(CStandardVersion? val = null)
12137 {
12138 if (true)
12139 {
12140 AppendArgument(new UnrealToolArgument(
12141 "-CStd",
12142 Value: val?.ToString(),
12143 Setter: '=',
12144 Meta: new(
12145 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12146 AllowMultiple: false
12147 )
12148 ));
12149 }
12150 return (TargetRulesConfig) this;
12151 }
12152
12153
12154/// <summary>
12155/// Enable Position Independent Executable (PIE). Has an overhead cost
12156/// </summary>
12157 public virtual TargetRulesConfig Pie(bool? val = null)
12158 {
12159 if (true)
12160 {
12161 AppendArgument(new UnrealToolArgument(
12162 "-pie",
12163 Value: val?.ToString(),
12164 Setter: '=',
12165 Meta: new(
12166 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12167 AllowMultiple: false
12168 )
12169 ));
12170 }
12171 return (TargetRulesConfig) this;
12172 }
12173
12174
12175/// <summary>
12176/// Enable Stack Protection. Has an overhead cost
12177/// </summary>
12178 public virtual TargetRulesConfig StackProtect(bool? val = null)
12179 {
12180 if (true)
12181 {
12182 AppendArgument(new UnrealToolArgument(
12183 "-stack-protect",
12184 Value: val?.ToString(),
12185 Setter: '=',
12186 Meta: new(
12187 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12188 AllowMultiple: false
12189 )
12190 ));
12191 }
12192 return (TargetRulesConfig) this;
12193 }
12194
12195
12196/// <summary>
12197/// Allows to fine tune optimizations level for speed and\or code size
12198/// </summary>
12200 {
12201 if (true)
12202 {
12203 AppendArgument(new UnrealToolArgument(
12204 "-OptimizationLevel",
12205 Value: val?.ToString(),
12206 Setter: '=',
12207 Meta: new(
12208 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12209 AllowMultiple: false
12210 )
12211 ));
12212 }
12213 return (TargetRulesConfig) this;
12214 }
12215
12216
12217/// <summary>
12218/// Tells "include what you use" to only compile header files.
12219/// </summary>
12220 public virtual TargetRulesConfig IWYUHeadersOnly(bool? val = null)
12221 {
12222 if (true)
12223 {
12224 AppendArgument(new UnrealToolArgument(
12225 "-IWYUHeadersOnly",
12226 Value: val?.ToString(),
12227 Setter: '=',
12228 Meta: new(
12229 Compatibility: UnrealCompatibility.UE_5_2,
12230 AllowMultiple: false
12231 )
12232 ));
12233 }
12234 return (TargetRulesConfig) this;
12235 }
12236
12237
12238/// <summary>
12239/// Disables overrides that are set by the module
12240/// </summary>
12242 {
12243 if (present)
12244 {
12245 AppendArgument(new UnrealToolArgument(
12246 "-DisableModuleNumIncludedBytesPerUnityCPPOverride",
12247 Value: null,
12248 Setter: '=',
12249 Meta: new(
12250 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12251 AllowMultiple: false
12252 )
12253 ));
12254 }
12255 return (TargetRulesConfig) this;
12256 }
12257
12258
12259/// <summary>
12260/// Directory where to put the ThinLTO cache on supported platforms.
12261/// </summary>
12262 public virtual TargetRulesConfig ThinLTOCacheDirectory(object val = null)
12263 {
12264 if (true)
12265 {
12266 AppendArgument(new UnrealToolArgument(
12267 "-ThinLTOCacheDirectory",
12268 Value: val?.ToString(),
12269 Setter: '=',
12270 Meta: new(
12271 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12272 AllowMultiple: false
12273 )
12274 ));
12275 }
12276 return (TargetRulesConfig) this;
12277 }
12278
12279
12280/// <summary>
12281/// Arguments that will be applied to prune the ThinLTO cache on supported platforms.
12282/// Arguments will only be applied if ThinLTOCacheDirectory is set.
12283/// </summary>
12284 public virtual TargetRulesConfig ThinLTOCachePruningArguments(object val = null)
12285 {
12286 if (true)
12287 {
12288 AppendArgument(new UnrealToolArgument(
12289 "-ThinLTOCachePruningArguments",
12290 Value: val?.ToString(),
12291 Setter: '=',
12292 Meta: new(
12293 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12294 AllowMultiple: false
12295 )
12296 ));
12297 }
12298 return (TargetRulesConfig) this;
12299 }
12300
12301
12302/// <summary>
12303/// Adds header files in included modules to the build.
12304/// </summary>
12305 public virtual TargetRulesConfig IncludeHeaders(bool? val = null)
12306 {
12307 if (true)
12308 {
12309 AppendArgument(new UnrealToolArgument(
12310 "-IncludeHeaders",
12311 Value: val?.ToString(),
12312 Setter: '=',
12313 Meta: new(
12314 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12315 AllowMultiple: false
12316 )
12317 ));
12318 }
12319 return (TargetRulesConfig) this;
12320 }
12321
12322
12323/// <summary>
12324/// Set flags require for deterministic compiling and linking.
12325/// Enabling deterministic mode for msvc disables codegen multithreading so compiling will be slower
12326/// </summary>
12327 public virtual TargetRulesConfig NonDeterministic(bool present = true)
12328 {
12329 if (present)
12330 {
12331 AppendArgument(new UnrealToolArgument(
12332 "-NonDeterministic",
12333 Value: null,
12334 Setter: '=',
12335 Meta: new(
12336 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12337 AllowMultiple: false
12338 )
12339 ));
12340 }
12341 return (TargetRulesConfig) this;
12342 }
12343
12344
12345/// <summary>
12346/// Which C++ standard to use for compiling this target (for engine modules)
12347/// </summary>
12349 {
12350 if (true)
12351 {
12352 AppendArgument(new UnrealToolArgument(
12353 "-CppStdEngine",
12354 Value: val?.ToString(),
12355 Setter: '=',
12356 Meta: new(
12357 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12358 AllowMultiple: false
12359 )
12360 ));
12361 }
12362 return (TargetRulesConfig) this;
12363 }
12364
12365
12366/// <summary>Whether to use the AutoRTFM Clang compiler.
12367/// Whether to use force AutoRTFM Clang compiler off.</summary>
12368 public virtual TargetRulesConfig NoUseAutoRTFM(bool present = true)
12369 {
12370 if (present)
12371 {
12372 AppendArgument(new UnrealToolArgument(
12373 "-NoUseAutoRTFM",
12374 Value: null,
12375 Setter: '=',
12376 Meta: new(
12377 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12378 AllowMultiple: false
12379 )
12380 ));
12381 }
12382 return (TargetRulesConfig) this;
12383 }
12384
12385
12386/// <summary>
12387/// Whether to use the AutoRTFM Clang compiler.
12388/// </summary>
12389 public virtual TargetRulesConfig UseAutoRTFM(bool present = true)
12390 {
12391 if (present)
12392 {
12393 AppendArgument(new UnrealToolArgument(
12394 "-UseAutoRTFM",
12395 Value: null,
12396 Setter: '=',
12397 Meta: new(
12398 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4,
12399 AllowMultiple: false
12400 )
12401 ));
12402 }
12403 return (TargetRulesConfig) this;
12404 }
12405
12406
12407/// <summary>
12408/// Whether to compile in Chaos Visual Debugger (CVD) support features to record the state of the physics simulation
12409/// </summary>
12411 {
12412 if (true)
12413 {
12414 AppendArgument(new UnrealToolArgument(
12415 "-CompileChaosVisualDebuggerSupport",
12416 Value: val?.ToString(),
12417 Setter: '=',
12418 Meta: new(
12419 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12420 AllowMultiple: false
12421 )
12422 ));
12423 }
12424 return (TargetRulesConfig) this;
12425 }
12426
12427
12428/// <summary>
12429/// When used with -IncludeHeaders, only header files will be compiled.
12430/// </summary>
12431 public virtual TargetRulesConfig HeadersOnly(bool? val = null)
12432 {
12433 if (true)
12434 {
12435 AppendArgument(new UnrealToolArgument(
12436 "-HeadersOnly",
12437 Value: val?.ToString(),
12438 Setter: '=',
12439 Meta: new(
12440 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12441 AllowMultiple: false
12442 )
12443 ));
12444 }
12445 return (TargetRulesConfig) this;
12446 }
12447
12448
12449/// <summary>
12450/// Indicates what warning/error level to treat potential PCH performance issues.
12451/// </summary>
12453 {
12454 if (true)
12455 {
12456 AppendArgument(new UnrealToolArgument(
12457 "-PCHPerformanceIssueWarningLevel",
12458 Value: val?.ToString(),
12459 Setter: '=',
12460 Meta: new(
12461 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12462 AllowMultiple: false
12463 )
12464 ));
12465 }
12466 return (TargetRulesConfig) this;
12467 }
12468
12469
12470/// <summary>
12471/// How to treat general module include path validation messages
12472/// </summary>
12474 {
12475 if (true)
12476 {
12477 AppendArgument(new UnrealToolArgument(
12478 "-ModuleIncludePathWarningLevel",
12479 Value: val?.ToString(),
12480 Setter: '=',
12481 Meta: new(
12482 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12483 AllowMultiple: false
12484 )
12485 ));
12486 }
12487 return (TargetRulesConfig) this;
12488 }
12489
12490
12491/// <summary>
12492/// How to treat private module include path validation messages, where a module is adding an include path that exposes private headers
12493/// </summary>
12495 {
12496 if (true)
12497 {
12498 AppendArgument(new UnrealToolArgument(
12499 "-ModuleIncludePrivateWarningLevel",
12500 Value: val?.ToString(),
12501 Setter: '=',
12502 Meta: new(
12503 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12504 AllowMultiple: false
12505 )
12506 ));
12507 }
12508 return (TargetRulesConfig) this;
12509 }
12510
12511
12512/// <summary>
12513/// How to treat unnecessary module sub-directory include path validation messages
12514/// </summary>
12516 {
12517 if (true)
12518 {
12519 AppendArgument(new UnrealToolArgument(
12520 "-ModuleIncludeSubdirectoryWarningLevel",
12521 Value: val?.ToString(),
12522 Setter: '=',
12523 Meta: new(
12524 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12525 AllowMultiple: false
12526 )
12527 ));
12528 }
12529 return (TargetRulesConfig) this;
12530 }
12531
12532
12533/// <summary>
12534/// Whether PDB files should be used for Visual C++ builds.
12535/// </summary>
12536 public virtual TargetRulesConfig UsePDB(bool present = true)
12537 {
12538 if (present)
12539 {
12540 AppendArgument(new UnrealToolArgument(
12541 "-UsePDB",
12542 Value: null,
12543 Setter: '=',
12544 Meta: new(
12545 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12546 AllowMultiple: false
12547 )
12548 ));
12549 }
12550 return (TargetRulesConfig) this;
12551 }
12552
12553
12554/// <summary>
12555/// Whether PCHs should be chained when compiling with clang.
12556/// </summary>
12557 public virtual TargetRulesConfig NoPCHChain(bool present = true)
12558 {
12559 if (present)
12560 {
12561 AppendArgument(new UnrealToolArgument(
12562 "-NoPCHChain",
12563 Value: null,
12564 Setter: '=',
12565 Meta: new(
12566 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12567 AllowMultiple: false
12568 )
12569 ));
12570 }
12571 return (TargetRulesConfig) this;
12572 }
12573
12574
12575/// <summary>
12576/// Whether to generate assembly data while compiling this target. Works exclusively on MSVC for now.
12577/// </summary>
12578 public virtual TargetRulesConfig WithAssembly(bool? val = null)
12579 {
12580 if (true)
12581 {
12582 AppendArgument(new UnrealToolArgument(
12583 "-WithAssembly",
12584 Value: val?.ToString(),
12585 Setter: '=',
12586 Meta: new(
12587 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12588 AllowMultiple: false
12589 )
12590 ));
12591 }
12592 return (TargetRulesConfig) this;
12593 }
12594
12595
12596/// <summary>
12597/// Whether the target requires code coverage compilation and linking.
12598/// </summary>
12599 public virtual TargetRulesConfig CodeCoverage(bool present = true)
12600 {
12601 if (present)
12602 {
12603 AppendArgument(new UnrealToolArgument(
12604 "-CodeCoverage",
12605 Value: null,
12606 Setter: '=',
12607 Meta: new(
12608 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12609 AllowMultiple: false
12610 )
12611 ));
12612 }
12613 return (TargetRulesConfig) this;
12614 }
12615
12616
12617/// <summary>
12618/// Whether to support edit and continue.
12619/// </summary>
12620 public virtual TargetRulesConfig SupportEditAndContinue(bool? val = null)
12621 {
12622 if (true)
12623 {
12624 AppendArgument(new UnrealToolArgument(
12625 "-SupportEditAndContinue",
12626 Value: val?.ToString(),
12627 Setter: '=',
12628 Meta: new(
12629 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12630 AllowMultiple: false
12631 )
12632 ));
12633 }
12634 return (TargetRulesConfig) this;
12635 }
12636
12637
12638/// <summary>Direct the compiler to generate AVX instructions wherever SSE or AVX intrinsics are used, on the x64 platforms that support it.
12639/// Note that by enabling this you are changing the minspec for the PC platform, and the resultant executable will crash on machines without AVX support.
12640/// Direct the compiler to generate AVX instructions wherever SSE or AVX intrinsics are used, on the x64 platforms that support it. Ignored for arm64.
12641/// Note that by enabling this you are changing the minspec for the target platform, and the resultant executable will crash on machines without AVX support.</summary>
12643 {
12644 if (true)
12645 {
12646 AppendArgument(new UnrealToolArgument(
12647 "-MinCpuArchX64",
12648 Value: val?.ToString(),
12649 Setter: '=',
12650 Meta: new(
12651 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12652 AllowMultiple: false
12653 )
12654 ));
12655 }
12656 return (TargetRulesConfig) this;
12657 }
12658
12659
12660/// <summary>
12661/// Extra subdirectory to load config files out of, for making multiple types of builds with the same platform
12662/// This will get baked into the game executable as CUSTOM_CONFIG and used when staging to filter files and settings
12663/// </summary>
12664 public virtual TargetRulesConfig CustomConfig(object val = null)
12665 {
12666 if (true)
12667 {
12668 AppendArgument(new UnrealToolArgument(
12669 "-CustomConfig",
12670 Value: val?.ToString(),
12671 Setter: '=',
12672 Meta: new(
12673 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12674 AllowMultiple: false
12675 )
12676 ));
12677 }
12678 return (TargetRulesConfig) this;
12679 }
12680
12681
12682/// <summary>
12683/// Whether to use the BPVM to run Verse.
12684/// </summary>
12685 public virtual TargetRulesConfig NoUseVerseBPVM(bool present = true)
12686 {
12687 if (present)
12688 {
12689 AppendArgument(new UnrealToolArgument(
12690 "-NoUseVerseBPVM",
12691 Value: null,
12692 Setter: '=',
12693 Meta: new(
12694 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12695 AllowMultiple: false
12696 )
12697 ));
12698 }
12699 return (TargetRulesConfig) this;
12700 }
12701
12702
12703/// <summary>
12704/// Whether to use the BPVM to run Verse.
12705/// </summary>
12706 public virtual TargetRulesConfig UseVerseBPVM(bool present = true)
12707 {
12708 if (present)
12709 {
12710 AppendArgument(new UnrealToolArgument(
12711 "-UseVerseBPVM",
12712 Value: null,
12713 Setter: '=',
12714 Meta: new(
12715 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12716 AllowMultiple: false
12717 )
12718 ));
12719 }
12720 return (TargetRulesConfig) this;
12721 }
12722
12723
12724/// <summary>
12725/// Allows setting the FP semantics.
12726/// </summary>
12728 {
12729 if (true)
12730 {
12731 AppendArgument(new UnrealToolArgument(
12732 "-FPSemantics",
12733 Value: val?.ToString(),
12734 Setter: '=',
12735 Meta: new(
12736 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12737 AllowMultiple: false
12738 )
12739 ));
12740 }
12741 return (TargetRulesConfig) this;
12742 }
12743
12744
12745/// <summary>
12746/// How much debug info should be generated. See DebugInfoMode enum for more details
12747/// </summary>
12748 public virtual TargetRulesConfig DebugInfo(DebugInfoMode? val = null)
12749 {
12750 if (true)
12751 {
12752 AppendArgument(new UnrealToolArgument(
12753 "-DebugInfo",
12754 Value: val?.ToString(),
12755 Setter: '=',
12756 Meta: new(
12757 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12758 AllowMultiple: false
12759 )
12760 ));
12761 }
12762 return (TargetRulesConfig) this;
12763 }
12764
12765
12766/// <summary>
12767/// Modules that should have debug info disabled
12768/// </summary>
12769 public virtual TargetRulesConfig DisableDebugInfoModules(params object[] values)
12770 {
12771 if (true)
12772 {
12773 AppendArgument(new UnrealToolArgument(
12774 "-DisableDebugInfoModules",
12775 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
12776 Setter: '=',
12777 Meta: new(
12778 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12779 AllowMultiple: true
12780 )
12781 ));
12782 }
12783 return (TargetRulesConfig) this;
12784 }
12785
12786
12787/// <summary>
12788/// Plugins that should have debug info disabled
12789/// </summary>
12790 public virtual TargetRulesConfig DisableDebugInfoPlugins(params object[] values)
12791 {
12792 if (true)
12793 {
12794 AppendArgument(new UnrealToolArgument(
12795 "-DisableDebugInfoPlugins",
12796 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
12797 Setter: '=',
12798 Meta: new(
12799 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12800 AllowMultiple: true
12801 )
12802 ));
12803 }
12804 return (TargetRulesConfig) this;
12805 }
12806
12807
12808/// <summary>
12809/// True if only debug line number tables should be emitted in debug information for compilers that support doing so. Overrides TargetRules.DebugInfo
12810/// See https://clang.llvm.org/docs/UsersManual.html#cmdoption-gline-tables-only for more information
12811/// </summary>
12813 {
12814 if (true)
12815 {
12816 AppendArgument(new UnrealToolArgument(
12817 "-DebugInfoLineTablesOnly",
12818 Value: val?.ToString(),
12819 Setter: '=',
12820 Meta: new(
12821 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12822 AllowMultiple: false
12823 )
12824 ));
12825 }
12826 return (TargetRulesConfig) this;
12827 }
12828
12829
12830/// <summary>
12831/// Modules that should emit line number tables instead of full debug information for compilers that support doing so. Overrides DisableDebugInfoModules
12832/// </summary>
12833 public virtual TargetRulesConfig DebugInfoLineTablesOnlyModules(params object[] values)
12834 {
12835 if (true)
12836 {
12837 AppendArgument(new UnrealToolArgument(
12838 "-DebugInfoLineTablesOnlyModules",
12839 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
12840 Setter: '=',
12841 Meta: new(
12842 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12843 AllowMultiple: true
12844 )
12845 ));
12846 }
12847 return (TargetRulesConfig) this;
12848 }
12849
12850
12851/// <summary>
12852/// Plugins that should emit line number tables instead of full debug information for compilers that support doing so. Overrides DisableDebugInfoPlugins
12853/// </summary>
12854 public virtual TargetRulesConfig DebugInfoLineTablesOnlyPlugins(params object[] values)
12855 {
12856 if (true)
12857 {
12858 AppendArgument(new UnrealToolArgument(
12859 "-DebugInfoLineTablesOnlyPlugins",
12860 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
12861 Setter: '=',
12862 Meta: new(
12863 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12864 AllowMultiple: true
12865 )
12866 ));
12867 }
12868 return (TargetRulesConfig) this;
12869 }
12870
12871
12872/// <summary>
12873/// The level of warnings to print when analyzing using PVS-Studio
12874/// </summary>
12875 public virtual TargetRulesConfig StaticAnalyzerPVSPrintLevel(double? val = null)
12876 {
12877 if (true)
12878 {
12879 AppendArgument(new UnrealToolArgument(
12880 "-StaticAnalyzerPVSPrintLevel",
12881 Value: val?.ToString(),
12882 Setter: '=',
12883 Meta: new(
12884 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12885 AllowMultiple: false
12886 )
12887 ));
12888 }
12889 return (TargetRulesConfig) this;
12890 }
12891
12892
12893/// <summary>
12894/// Only run static analysis against project modules, skipping engine modules
12895/// </summary>
12896/// <remarks>PVS-Studio: warnings that are disabled via Engine/Source/Runtime/Core/Public/Microsoft/MicrosoftPlatformCodeAnalysis.h will be reenabled</remarks>
12897 public virtual TargetRulesConfig StaticAnalyzerProjectOnly(bool? val = null)
12898 {
12899 if (true)
12900 {
12901 AppendArgument(new UnrealToolArgument(
12902 "-StaticAnalyzerProjectOnly",
12903 Value: val?.ToString(),
12904 Setter: '=',
12905 Meta: new(
12906 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12907 AllowMultiple: false
12908 )
12909 ));
12910 }
12911 return (TargetRulesConfig) this;
12912 }
12913
12914
12915/// <summary>
12916/// When enabled, generated source files will be analyzed
12917/// </summary>
12918 public virtual TargetRulesConfig StaticAnalyzerIncludeGenerated(bool? val = null)
12919 {
12920 if (true)
12921 {
12922 AppendArgument(new UnrealToolArgument(
12923 "-StaticAnalyzerIncludeGenerated",
12924 Value: val?.ToString(),
12925 Setter: '=',
12926 Meta: new(
12927 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12928 AllowMultiple: false
12929 )
12930 ));
12931 }
12932 return (TargetRulesConfig) this;
12933 }
12934
12935
12936/// <summary>
12937/// Will replace pch with ifc and use header units instead. This is an experimental and msvc-only feature
12938/// </summary>
12939 public virtual TargetRulesConfig HeaderUnits(bool? val = null)
12940 {
12941 if (true)
12942 {
12943 AppendArgument(new UnrealToolArgument(
12944 "-HeaderUnits",
12945 Value: val?.ToString(),
12946 Setter: '=',
12947 Meta: new(
12948 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12949 AllowMultiple: false
12950 )
12951 ));
12952 }
12953 return (TargetRulesConfig) this;
12954 }
12955
12956
12957/// <summary>
12958/// A list of additional plugins which need to be included in this target. This allows referencing non-optional plugin modules
12959/// which cannot be disabled, and allows building against specific modules in program targets which do not fit the categories
12960/// in ModuleHostType.
12961/// </summary>
12962 public virtual TargetRulesConfig AdditionalPlugins(params object[] values)
12963 {
12964 if (true)
12965 {
12966 AppendArgument(new UnrealToolArgument(
12967 "-AdditionalPlugins",
12968 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
12969 Setter: '=',
12970 Meta: new(
12971 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12972 AllowMultiple: true
12973 )
12974 ));
12975 }
12976 return (TargetRulesConfig) this;
12977 }
12978
12979
12980/// <summary>
12981/// Additional plugins that should be included for this target if they are found.
12982/// </summary>
12983 public virtual TargetRulesConfig OptionalPlugins(params object[] values)
12984 {
12985 if (true)
12986 {
12987 AppendArgument(new UnrealToolArgument(
12988 "-OptionalPlugins",
12989 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
12990 Setter: '=',
12991 Meta: new(
12992 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
12993 AllowMultiple: true
12994 )
12995 ));
12996 }
12997 return (TargetRulesConfig) this;
12998 }
12999
13000
13001/// <summary>
13002/// Whether to enable emitting AutoRTFM verification metadata
13003/// </summary>
13004 public virtual TargetRulesConfig UseAutoRTFMVerifier(bool present = true)
13005 {
13006 if (present)
13007 {
13008 AppendArgument(new UnrealToolArgument(
13009 "-UseAutoRTFMVerifier",
13010 Value: null,
13011 Setter: '=',
13012 Meta: new(
13013 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13014 AllowMultiple: false
13015 )
13016 ));
13017 }
13018 return (TargetRulesConfig) this;
13019 }
13020
13021
13022/// <summary>
13023/// Whether to use I/O store on-demand
13024/// </summary>
13025 public virtual TargetRulesConfig CompileIoStoreOnDemand(bool present = true)
13026 {
13027 if (present)
13028 {
13029 AppendArgument(new UnrealToolArgument(
13030 "-CompileIoStoreOnDemand",
13031 Value: null,
13032 Setter: '=',
13033 Meta: new(
13034 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13035 AllowMultiple: false
13036 )
13037 ));
13038 }
13039 return (TargetRulesConfig) this;
13040 }
13041
13042
13043/// <summary>Indicates what warning/error level to treat undefined identifiers in conditional expressions.
13044/// Indicates what warning/error level to treat undefined identifiers in conditional expressions.
13045/// MSVC -
13046/// https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4668
13047/// 4668 - 'symbol' is not defined as a preprocessor macro, replacing with '0' for 'directives'
13048/// 44668 - Note: The extra 4 is not a typo, /wLXXXX sets warning XXXX to level L
13049/// Clang -
13050/// https://clang.llvm.org/docs/DiagnosticsReference.html#wundef</summary>
13052 {
13053 if (true)
13054 {
13055 AppendArgument(new UnrealToolArgument(
13056 "-UndefinedIdentifierWarningLevel",
13057 Value: val?.ToString(),
13058 Setter: '=',
13059 Meta: new(
13060 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13061 AllowMultiple: false
13062 )
13063 ));
13064 }
13065 return (TargetRulesConfig) this;
13066 }
13067
13068
13069/// <summary>Experimental: Store object (.obj) compressed on disk. Requires UBA to link, currently MSVC only. Toggling this flag will invalidate MSVC actions.
13070/// Warning, this option is not currently compatitable with PGO or the the cl-clang linker as those are not detoured and linking will fail.
13071/// Store object (.obj) compressed on disk. Requires uba to do link step where it will decompress obj files again</summary>
13072 public virtual TargetRulesConfig UBAStoreObjFilesCompressed(bool present = true)
13073 {
13074 if (present)
13075 {
13076 AppendArgument(new UnrealToolArgument(
13077 "-UBAStoreObjFilesCompressed",
13078 Value: null,
13079 Setter: '=',
13080 Meta: new(
13081 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13082 AllowMultiple: false
13083 )
13084 ));
13085 }
13086 return (TargetRulesConfig) this;
13087 }
13088
13089
13090/// <summary>
13091/// Experimental: Strip unused exports from libraries. Only applies when LinkType is Modular
13092/// </summary>
13093 public virtual TargetRulesConfig StripExports(bool? val = null)
13094 {
13095 if (true)
13096 {
13097 AppendArgument(new UnrealToolArgument(
13098 "-StripExports",
13099 Value: val?.ToString(),
13100 Setter: '=',
13101 Meta: new(
13102 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13103 AllowMultiple: false
13104 )
13105 ));
13106 }
13107 return (TargetRulesConfig) this;
13108 }
13109
13110
13111/// <summary>
13112/// Experimental: Merge modular modules into combined libraries. Sets LinkType to Modular and enables bStripExports
13113/// </summary>
13114 public virtual TargetRulesConfig MergeModules(bool? val = null)
13115 {
13116 if (true)
13117 {
13118 AppendArgument(new UnrealToolArgument(
13119 "-MergeModules",
13120 Value: val?.ToString(),
13121 Setter: '=',
13122 Meta: new(
13123 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13124 AllowMultiple: false
13125 )
13126 ));
13127 }
13128 return (TargetRulesConfig) this;
13129 }
13130
13131
13132/// <summary>
13133/// Experimental: List of plugins (and their dependencies) to each merge into separate libraries. Requires bMergeModules to be enabled
13134/// </summary>
13135 public virtual TargetRulesConfig MergePlugins(params object[] values)
13136 {
13137 if (true)
13138 {
13139 AppendArgument(new UnrealToolArgument(
13140 "-MergePlugins",
13141 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
13142 Setter: '=',
13143 Meta: new(
13144 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13145 AllowMultiple: true
13146 )
13147 ));
13148 }
13149 return (TargetRulesConfig) this;
13150 }
13151
13152
13153/// <summary>
13154/// Print out files that are included by each source file
13155/// </summary>
13156 public virtual TargetRulesConfig ShowIncludes(bool? val = null)
13157 {
13158 if (true)
13159 {
13160 AppendArgument(new UnrealToolArgument(
13161 "-ShowIncludes",
13162 Value: val?.ToString(),
13163 Setter: '=',
13164 Meta: new(
13165 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13166 AllowMultiple: false
13167 )
13168 ));
13169 }
13170 return (TargetRulesConfig) this;
13171 }
13172
13173
13174/// <summary>
13175/// Whether to run LLVM verification after the AutoRTFM compiler pass.
13176/// This is used by our compiler folks to ensure the pass works with
13177/// the various code-paths UBT can take us down.
13178/// </summary>
13179 public virtual TargetRulesConfig AutoRTFMVerify(bool present = true)
13180 {
13181 if (present)
13182 {
13183 AppendArgument(new UnrealToolArgument(
13184 "-AutoRTFMVerify",
13185 Value: null,
13186 Setter: '=',
13187 Meta: new(
13188 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13189 AllowMultiple: false
13190 )
13191 ));
13192 }
13193 return (TargetRulesConfig) this;
13194 }
13195
13196
13197/// <summary>
13198/// Whether to link closed function declarations statically.
13199/// </summary>
13200 public virtual TargetRulesConfig AutoRTFMClosedStaticLinkage(bool present = true)
13201 {
13202 if (present)
13203 {
13204 AppendArgument(new UnrealToolArgument(
13205 "-AutoRTFMClosedStaticLinkage",
13206 Value: null,
13207 Setter: '=',
13208 Meta: new(
13209 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13210 AllowMultiple: false
13211 )
13212 ));
13213 }
13214 return (TargetRulesConfig) this;
13215 }
13216
13217
13218/// <summary>
13219/// Experimental work in progress: Set flags to use toolchain virtual file system support, to generate consistent pathing in outputs
13220/// </summary>
13221 public virtual TargetRulesConfig VFS(bool present = true)
13222 {
13223 if (present)
13224 {
13225 AppendArgument(new UnrealToolArgument(
13226 "-VFS",
13227 Value: null,
13228 Setter: '=',
13229 Meta: new(
13230 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13231 AllowMultiple: false
13232 )
13233 ));
13234 }
13235 return (TargetRulesConfig) this;
13236 }
13237
13238
13239/// <summary>
13240/// Experimental work in progress: Set flags to use toolchain virtual file system support, to generate consistent pathing in outputs
13241/// </summary>
13242 public virtual TargetRulesConfig NoVFS(bool present = true)
13243 {
13244 if (present)
13245 {
13246 AppendArgument(new UnrealToolArgument(
13247 "-NoVFS",
13248 Value: null,
13249 Setter: '=',
13250 Meta: new(
13251 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13252 AllowMultiple: false
13253 )
13254 ));
13255 }
13256 return (TargetRulesConfig) this;
13257 }
13258
13259
13260/// <summary>
13261/// Select a minimum ARM64 target CPU. This will change what ARMv8(9)-A ISA + extension code will be compiled for.
13262/// Changing it from default will guarantee not to work on all ARM64 CPUs.
13263/// Currently supported by clang compiler only
13264/// </summary>
13266 {
13267 if (true)
13268 {
13269 AppendArgument(new UnrealToolArgument(
13270 "-MinArm64CpuTarget",
13271 Value: val?.ToString(),
13272 Setter: '=',
13273 Meta: new(
13274 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13275 AllowMultiple: false
13276 )
13277 ));
13278 }
13279 return (TargetRulesConfig) this;
13280 }
13281
13282
13283/// <summary>
13284/// Experimental: List of plugins (and their dependencies) to ignore when processing merged libraries. Requires bMergeModules to be enabled
13285/// Ignored plugins will still be compiled, but if they're kept in the base executable, their dependencies will not be forced out of merged library with them.
13286/// This should be used carefully, for organisational plugins known to have dependencies they don't actually need at runtime.
13287/// </summary>
13288 public virtual TargetRulesConfig MergePluginsIgnored(params object[] values)
13289 {
13290 if (true)
13291 {
13292 AppendArgument(new UnrealToolArgument(
13293 "-MergePluginsIgnored",
13294 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
13295 Setter: '=',
13296 Meta: new(
13297 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13298 AllowMultiple: true
13299 )
13300 ));
13301 }
13302 return (TargetRulesConfig) this;
13303 }
13304
13305
13306/// <summary>
13307/// Subfolder to place executables in, relative to the default location.
13308/// </summary>
13309 public virtual TargetRulesConfig BinariesSubfolder(object val = null)
13310 {
13311 if (true)
13312 {
13313 AppendArgument(new UnrealToolArgument(
13314 "-BinariesSubfolder",
13315 Value: val?.ToString(),
13316 Setter: '=',
13317 Meta: new(
13318 Compatibility: UnrealCompatibility.UE_5_Latest,
13319 AllowMultiple: false
13320 )
13321 ));
13322 }
13323 return (TargetRulesConfig) this;
13324 }
13325
13326
13327/// <summary>
13328/// True if debug line number tables should be omitted in debug information for inline functions, compilers that support doing so.
13329/// </summary>
13331 {
13332 if (true)
13333 {
13334 AppendArgument(new UnrealToolArgument(
13335 "-DebugInfoNoInlineLineTables",
13336 Value: val?.ToString(),
13337 Setter: '=',
13338 Meta: new(
13339 Compatibility: UnrealCompatibility.UE_5_Latest,
13340 AllowMultiple: false
13341 )
13342 ));
13343 }
13344 return (TargetRulesConfig) this;
13345 }
13346
13347
13348/// <summary>
13349/// Modules that should include line number tables for inline functions for compilers that support doing so, even if DebugInfoNoInlineLineTables would otherwise remove them.
13350/// </summary>
13351 public virtual TargetRulesConfig DebugInfoInlineLineTablesModules(params object[] values)
13352 {
13353 if (true)
13354 {
13355 AppendArgument(new UnrealToolArgument(
13356 "-DebugInfoInlineLineTablesModules",
13357 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
13358 Setter: '=',
13359 Meta: new(
13360 Compatibility: UnrealCompatibility.UE_5_Latest,
13361 AllowMultiple: true
13362 )
13363 ));
13364 }
13365 return (TargetRulesConfig) this;
13366 }
13367
13368
13369/// <summary>
13370/// Modules that should include line number tables for inline functions for compilers that support doing so, even if DebugInfoNoInlineLineTables would otherwise remove them.
13371/// </summary>
13372 public virtual TargetRulesConfig DebugInfoInlineLineTablesPlugins(params object[] values)
13373 {
13374 if (true)
13375 {
13376 AppendArgument(new UnrealToolArgument(
13377 "-DebugInfoInlineLineTablesPlugins",
13378 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
13379 Setter: '=',
13380 Meta: new(
13381 Compatibility: UnrealCompatibility.UE_5_Latest,
13382 AllowMultiple: true
13383 )
13384 ));
13385 }
13386 return (TargetRulesConfig) this;
13387 }
13388
13389
13390/// <summary>
13391/// True if template type names should be simplified to reduce the size of debug info for compilers that support doing so.
13392/// </summary>
13394 {
13395 if (true)
13396 {
13397 AppendArgument(new UnrealToolArgument(
13398 "-DebugInfoSimpleTemplateNames",
13399 Value: val?.ToString(),
13400 Setter: '=',
13401 Meta: new(
13402 Compatibility: UnrealCompatibility.UE_5_Latest,
13403 AllowMultiple: false
13404 )
13405 ));
13406 }
13407 return (TargetRulesConfig) this;
13408 }
13409
13410
13411/// <summary>
13412/// Modules for which template type names should be simplified to reduce the size of debug info for compilers that support doing so.
13413/// </summary>
13414 public virtual TargetRulesConfig DebugInfoSimpleTemplateNamesModules(params object[] values)
13415 {
13416 if (true)
13417 {
13418 AppendArgument(new UnrealToolArgument(
13419 "-DebugInfoSimpleTemplateNamesModules",
13420 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
13421 Setter: '=',
13422 Meta: new(
13423 Compatibility: UnrealCompatibility.UE_5_Latest,
13424 AllowMultiple: true
13425 )
13426 ));
13427 }
13428 return (TargetRulesConfig) this;
13429 }
13430
13431
13432/// <summary>
13433/// Plugins for which template type names should be simplified to reduce the size of debug info for compilers that support doing so.
13434/// </summary>
13435 public virtual TargetRulesConfig DebugInfoSimpleTemplateNamesPlugins(params object[] values)
13436 {
13437 if (true)
13438 {
13439 AppendArgument(new UnrealToolArgument(
13440 "-DebugInfoSimpleTemplateNamesPlugins",
13441 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
13442 Setter: '=',
13443 Meta: new(
13444 Compatibility: UnrealCompatibility.UE_5_Latest,
13445 AllowMultiple: true
13446 )
13447 ));
13448 }
13449 return (TargetRulesConfig) this;
13450 }
13451
13452
13453/// <summary>
13454/// Salt value to modify cache bucket calculation, can be used to invalidate cached actions outputs
13455/// </summary>
13456 public virtual TargetRulesConfig CacheSalt(object val = null)
13457 {
13458 if (true)
13459 {
13460 AppendArgument(new UnrealToolArgument(
13461 "-CacheSalt",
13462 Value: val?.ToString(),
13463 Setter: '=',
13464 Meta: new(
13465 Compatibility: UnrealCompatibility.UE_5_Latest,
13466 AllowMultiple: false
13467 )
13468 ));
13469 }
13470 return (TargetRulesConfig) this;
13471 }
13472
13473
13474/// <summary>
13475/// When Link Time Code Generation (LTCG) is enabled, whether to
13476/// prefer using the lighter weight version on supported platforms.
13477/// </summary>
13478 public virtual TargetRulesConfig NoThinLTO(bool present = true)
13479 {
13480 if (present)
13481 {
13482 AppendArgument(new UnrealToolArgument(
13483 "-NoThinLTO",
13484 Value: null,
13485 Setter: '=',
13486 Meta: new(
13487 Compatibility: UnrealCompatibility.UE_5_Latest,
13488 AllowMultiple: false
13489 )
13490 ));
13491 }
13492 return (TargetRulesConfig) this;
13493 }
13494
13495
13496/// <summary>
13497/// When ThinLTO is enabled we use distributed linking if supported
13498/// This can save a lot of time for large binaries
13499/// </summary>
13500 public virtual TargetRulesConfig ThinLTODistributed(bool? val = null)
13501 {
13502 if (true)
13503 {
13504 AppendArgument(new UnrealToolArgument(
13505 "-ThinLTODistributed",
13506 Value: val?.ToString(),
13507 Setter: '=',
13508 Meta: new(
13509 Compatibility: UnrealCompatibility.UE_5_Latest,
13510 AllowMultiple: false
13511 )
13512 ));
13513 }
13514 return (TargetRulesConfig) this;
13515 }
13516
13517
13518/// <summary>
13519/// Experimental: List of modules to exclude from Engine to be placed in Common
13520/// </summary>
13521 public virtual TargetRulesConfig MergeAdditionalCommonModules(params object[] values)
13522 {
13523 if (true)
13524 {
13525 AppendArgument(new UnrealToolArgument(
13526 "-MergeAdditionalCommonModules",
13527 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
13528 Setter: '=',
13529 Meta: new(
13530 Compatibility: UnrealCompatibility.UE_5_Latest,
13531 AllowMultiple: true
13532 )
13533 ));
13534 }
13535 return (TargetRulesConfig) this;
13536 }
13537
13538
13539/// <summary>
13540/// Experimental: List of plugins (and their dependencies) to explicitly exclude when processing merged libraries. Requires bMergeModules to be enabled
13541/// Ignored plugins will still be compiled but forced into the executable.
13542/// </summary>
13543 public virtual TargetRulesConfig MergePluginsExcluded(params object[] values)
13544 {
13545 if (true)
13546 {
13547 AppendArgument(new UnrealToolArgument(
13548 "-MergePluginsExcluded",
13549 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
13550 Setter: '=',
13551 Meta: new(
13552 Compatibility: UnrealCompatibility.UE_5_Latest,
13553 AllowMultiple: true
13554 )
13555 ));
13556 }
13557 return (TargetRulesConfig) this;
13558 }
13559
13560
13561/// <summary>
13562/// Experimental: Whether to report module merging data to the game target.
13563/// </summary>
13564 public virtual TargetRulesConfig MergeModulesReport(bool? val = null)
13565 {
13566 if (true)
13567 {
13568 AppendArgument(new UnrealToolArgument(
13569 "-MergeModulesReport",
13570 Value: val?.ToString(),
13571 Setter: '=',
13572 Meta: new(
13573 Compatibility: UnrealCompatibility.UE_5_Latest,
13574 AllowMultiple: false
13575 )
13576 ));
13577 }
13578 return (TargetRulesConfig) this;
13579 }
13580
13581
13582 private ToolConfig[] _configs = null;
13583 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
13584 {
13585 };
13586 }
13587
13588 protected readonly TargetRulesConfig TargetRulesStorage = new();
13589
13590/// <summary>
13591/// Aggregates parsed Visual C++ timing information files together into one monolithic breakdown file.
13592/// </summary>
13593/// <summary>
13594/// Aggregates parsed Visual C++ timing information files together into one monolithic breakdown file.
13595/// </summary>
13597 {
13598 public override string Name => "AggregateParsedTimingInfo";
13599 public override string CliName => "-AggregateParsedTimingInfo";
13600 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
13601
13602 private ToolConfig[] _configs = null;
13603 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
13604 {
13605 };
13606 }
13607
13608 protected readonly AggregateParsedTimingInfoConfig AggregateParsedTimingInfoStorage = new();
13609
13610/// <summary>
13611/// Builds a target
13612/// </summary>
13614 {
13615 public override string Name => "Build";
13616 public override string CliName => "-Build";
13617 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
13618
13619/// <summary>
13620/// Whether to skip checking for files identified by the junk manifest.
13621/// </summary>
13622 public virtual BuildConfig IgnoreJunk(bool? val = null)
13623 {
13624 if (true)
13625 {
13626 AppendArgument(new UnrealToolArgument(
13627 "-IgnoreJunk",
13628 Value: val?.ToString(),
13629 Setter: '=',
13630 Meta: new(
13632 AllowMultiple: false
13633 )
13634 ));
13635 }
13636 return (BuildConfig) this;
13637 }
13638
13639
13640/// <summary>
13641/// Skip building; just do setup and terminate.
13642/// </summary>
13643 public virtual BuildConfig SkipBuild(bool? val = null)
13644 {
13645 if (true)
13646 {
13647 AppendArgument(new UnrealToolArgument(
13648 "-SkipBuild",
13649 Value: val?.ToString(),
13650 Setter: '=',
13651 Meta: new(
13653 AllowMultiple: false
13654 )
13655 ));
13656 }
13657 return (BuildConfig) this;
13658 }
13659
13660
13661/// <summary>
13662/// Skip pre build targets; just do the main target.
13663/// </summary>
13664 public virtual BuildConfig SkipPreBuildTargets(bool? val = null)
13665 {
13666 if (true)
13667 {
13668 AppendArgument(new UnrealToolArgument(
13669 "-SkipPreBuildTargets",
13670 Value: val?.ToString(),
13671 Setter: '=',
13672 Meta: new(
13674 AllowMultiple: false
13675 )
13676 ));
13677 }
13678 return (BuildConfig) this;
13679 }
13680
13681
13682/// <summary>
13683/// Whether we should just export the XGE XML and pretend it succeeded
13684/// </summary>
13685 public virtual BuildConfig XGEExport(bool? val = null)
13686 {
13687 if (true)
13688 {
13689 AppendArgument(new UnrealToolArgument(
13690 "-XGEExport",
13691 Value: val?.ToString(),
13692 Setter: '=',
13693 Meta: new(
13695 AllowMultiple: false
13696 )
13697 ));
13698 }
13699 return (BuildConfig) this;
13700 }
13701
13702
13703/// <summary>
13704/// Do not allow any engine files to be output (used by compile on startup functionality)
13705/// </summary>
13706 public virtual BuildConfig NoEngineChanges(bool? val = null)
13707 {
13708 if (true)
13709 {
13710 AppendArgument(new UnrealToolArgument(
13711 "-NoEngineChanges",
13712 Value: val?.ToString(),
13713 Setter: '=',
13714 Meta: new(
13716 AllowMultiple: false
13717 )
13718 ));
13719 }
13720 return (BuildConfig) this;
13721 }
13722
13723
13724/// <summary>
13725/// Whether we should just export the outdated actions list
13726/// </summary>
13727 public virtual BuildConfig WriteOutdatedActions(object val = null)
13728 {
13729 if (true)
13730 {
13731 AppendArgument(new UnrealToolArgument(
13732 "-WriteOutdatedActions",
13733 Value: val?.ToString(),
13734 Setter: '=',
13735 Meta: new(
13737 AllowMultiple: false
13738 )
13739 ));
13740 }
13741 return (BuildConfig) this;
13742 }
13743
13744
13745/// <summary>
13746/// An optional directory to copy crash dump files into
13747/// </summary>
13748 public virtual BuildConfig SaveCrashDumps(object val = null)
13749 {
13750 if (true)
13751 {
13752 AppendArgument(new UnrealToolArgument(
13753 "-SaveCrashDumps",
13754 Value: val?.ToString(),
13755 Setter: '=',
13756 Meta: new(
13757 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13758 AllowMultiple: false
13759 )
13760 ));
13761 }
13762 return (BuildConfig) this;
13763 }
13764
13765
13766/// <summary>
13767/// If specified, then only this type of action will execute
13768/// </summary>
13769 public virtual BuildConfig ActionTypeFilter(object val = null)
13770 {
13771 if (true)
13772 {
13773 AppendArgument(new UnrealToolArgument(
13774 "-ActionTypeFilter",
13775 Value: val?.ToString(),
13776 Setter: '=',
13777 Meta: new(
13778 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13779 AllowMultiple: false
13780 )
13781 ));
13782 }
13783 return (BuildConfig) this;
13784 }
13785
13786
13787 private ToolConfig[] _configs = null;
13788 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
13789 {
13790 };
13791 }
13792
13793 protected readonly BuildConfig BuildStorage = new();
13794
13795/// <summary>Cleans build products and intermediates for the target. This deletes files which are named consistently with the target being built
13796/// (e.g. UE4Editor-Foo-Win64-Debug.dll) rather than an actual record of previous build products.
13797/// Cleans build products and intermediates for the target. This deletes files which are named consistently with the target being built
13798/// (e.g. UnrealEditor-Foo-Win64-Debug.dll) rather than an actual record of previous build products.</summary>
13800 {
13801 public override string Name => "Clean";
13802 public override string CliName => "-Clean";
13803 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
13804
13805/// <summary>
13806/// Whether to avoid cleaning targets
13807/// </summary>
13808 public virtual CleanConfig SkipRulesCompile(bool? val = null)
13809 {
13810 if (true)
13811 {
13812 AppendArgument(new UnrealToolArgument(
13813 "-SkipRulesCompile",
13814 Value: val?.ToString(),
13815 Setter: '=',
13816 Meta: new(
13818 AllowMultiple: false
13819 )
13820 ));
13821 }
13822 return (CleanConfig) this;
13823 }
13824
13825
13826/// <summary>
13827/// Skip pre build targets; just do the main target.
13828/// </summary>
13829 public virtual CleanConfig SkipPreBuildTargets(bool? val = null)
13830 {
13831 if (true)
13832 {
13833 AppendArgument(new UnrealToolArgument(
13834 "-SkipPreBuildTargets",
13835 Value: val?.ToString(),
13836 Setter: '=',
13837 Meta: new(
13839 AllowMultiple: false
13840 )
13841 ));
13842 }
13843 return (CleanConfig) this;
13844 }
13845
13846
13847 private ToolConfig[] _configs = null;
13848 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
13849 {
13850 };
13851 }
13852
13853 protected readonly CleanConfig CleanStorage = new();
13854
13855/// <summary>
13856/// Invokes the deployment handler for a target.
13857/// </summary>
13859 {
13860 public override string Name => "Deploy";
13861 public override string CliName => "-Deploy";
13862 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
13863
13864/// <summary>If we are just running the deployment step, specifies the path to the given deployment settings
13865/// REQUIRED!</summary>
13866 public virtual DeployConfig Receipt(object val = null)
13867 {
13868 if (true)
13869 {
13870 AppendArgument(new UnrealToolArgument(
13871 "-Receipt",
13872 Value: val?.ToString(),
13873 Setter: '=',
13874 Meta: new(
13876 AllowMultiple: false
13877 )
13878 ));
13879 }
13880 return (DeployConfig) this;
13881 }
13882
13883
13884 private ToolConfig[] _configs = null;
13885 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
13886 {
13887 };
13888 }
13889
13890 protected readonly DeployConfig DeployStorage = new();
13891
13892/// <summary>
13893/// Builds a target
13894/// </summary>
13896 {
13897 public override string Name => "Execute";
13898 public override string CliName => "-Execute";
13899 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
13900
13901/// <summary>Whether we should just export the outdated actions list
13902/// REQUIRED!</summary>
13903 public virtual ExecuteConfig Actions(object val = null)
13904 {
13905 if (true)
13906 {
13907 AppendArgument(new UnrealToolArgument(
13908 "-Actions",
13909 Value: val?.ToString(),
13910 Setter: '=',
13911 Meta: new(
13913 AllowMultiple: false
13914 )
13915 ));
13916 }
13917 return (ExecuteConfig) this;
13918 }
13919
13920
13921 private ToolConfig[] _configs = null;
13922 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
13923 {
13924 };
13925 }
13926
13927 protected readonly ExecuteConfig ExecuteStorage = new();
13928
13929/// <summary>
13930/// Generate a clang compile_commands file for a target
13931/// </summary>
13933 {
13934 public override string Name => "GenerateClangDatabase";
13935 public override string CliName => "-GenerateClangDatabase";
13936 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
13937
13938/// <summary>
13939/// Set of filters for files to include in the database. Relative to the root directory, or to the project file.
13940/// </summary>
13941 public virtual GenerateClangDatabaseConfig Filter(params object[] values)
13942 {
13943 if (true)
13944 {
13945 if (values != null)
13946 foreach (var val in values)
13947 {
13948 AppendArgument(new UnrealToolArgument(
13949 "-Filter",
13950 Value: val.ToString(),
13951 Setter: '=',
13952 Meta: new(
13953 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4,
13954 AllowMultiple: true
13955 )
13956 ));
13957 }
13958 }
13959 return (GenerateClangDatabaseConfig) this;
13960 }
13961
13962
13963/// <summary>
13964/// Execute any actions which result in code generation (eg. ISPC compilation)
13965/// </summary>
13966 public virtual GenerateClangDatabaseConfig ExecCodeGenActions(bool? val = null)
13967 {
13968 if (true)
13969 {
13970 AppendArgument(new UnrealToolArgument(
13971 "-ExecCodeGenActions",
13972 Value: val?.ToString(),
13973 Setter: '=',
13974 Meta: new(
13975 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13976 AllowMultiple: false
13977 )
13978 ));
13979 }
13980 return (GenerateClangDatabaseConfig) this;
13981 }
13982
13983
13984/// <summary>
13985/// Execute any actions which result in code generation (eg. ISPC compilation)
13986/// </summary>
13987 public virtual GenerateClangDatabaseConfig NoExecCodeGenActions(bool present = true)
13988 {
13989 if (present)
13990 {
13991 AppendArgument(new UnrealToolArgument(
13992 "-NoExecCodeGenActions",
13993 Value: null,
13994 Setter: '=',
13995 Meta: new(
13996 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
13997 AllowMultiple: false
13998 )
13999 ));
14000 }
14001 return (GenerateClangDatabaseConfig) this;
14002 }
14003
14004
14005/// <summary>
14006/// Optional set of source files to include in the compile database. If this is empty, all files will be included by default and -Exclude can be used to exclude some.
14007/// Relative to the root directory, or to the project file.
14008/// </summary>
14009 public virtual GenerateClangDatabaseConfig Include(params object[] values)
14010 {
14011 if (true)
14012 {
14013 if (values != null)
14014 foreach (var val in values)
14015 {
14016 AppendArgument(new UnrealToolArgument(
14017 "-Include",
14018 Value: val.ToString(),
14019 Setter: '=',
14020 Meta: new(
14021 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
14022 AllowMultiple: true
14023 )
14024 ));
14025 }
14026 }
14027 return (GenerateClangDatabaseConfig) this;
14028 }
14029
14030
14031/// <summary>
14032/// Optional set of source files to exclude from the compile database.
14033/// Relative to the root directory, or to the project file.
14034/// </summary>
14035 public virtual GenerateClangDatabaseConfig Exclude(params object[] values)
14036 {
14037 if (true)
14038 {
14039 if (values != null)
14040 foreach (var val in values)
14041 {
14042 AppendArgument(new UnrealToolArgument(
14043 "-Exclude",
14044 Value: val.ToString(),
14045 Setter: '=',
14046 Meta: new(
14047 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
14048 AllowMultiple: true
14049 )
14050 ));
14051 }
14052 }
14053 return (GenerateClangDatabaseConfig) this;
14054 }
14055
14056
14057/// <summary>
14058/// Optionally override the output filename for handling multiple targets
14059/// </summary>
14060 public virtual GenerateClangDatabaseConfig OutputFilename(object val = null)
14061 {
14062 if (true)
14063 {
14064 AppendArgument(new UnrealToolArgument(
14065 "-OutputFilename",
14066 Value: val?.ToString(),
14067 Setter: '=',
14068 Meta: new(
14069 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
14070 AllowMultiple: false
14071 )
14072 ));
14073 }
14074 return (GenerateClangDatabaseConfig) this;
14075 }
14076
14077
14078/// <summary>
14079/// Optionally overrite the output directory for the compile_commands file.
14080/// </summary>
14081 public virtual GenerateClangDatabaseConfig OutputDir(object val = null)
14082 {
14083 if (true)
14084 {
14085 AppendArgument(new UnrealToolArgument(
14086 "-OutputDir",
14087 Value: val?.ToString(),
14088 Setter: '=',
14089 Meta: new(
14090 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
14091 AllowMultiple: false
14092 )
14093 ));
14094 }
14095 return (GenerateClangDatabaseConfig) this;
14096 }
14097
14098
14099 private ToolConfig[] _configs = null;
14100 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
14101 {
14102 };
14103 }
14104
14105 protected readonly GenerateClangDatabaseConfig GenerateClangDatabaseStorage = new();
14106
14107/// <summary>
14108/// Generates project files for one or more projects
14109/// </summary>
14111 {
14112 public override string Name => "GenerateProjectFiles";
14113 public override string CliName => "-GenerateProjectFiles";
14114 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
14115
14116/// <summary>
14117/// Types of project files to generate
14118/// </summary>
14120 {
14121 if (true)
14122 {
14123 if (values != null)
14124 foreach (var val in values)
14125 {
14126 AppendArgument(new UnrealToolArgument(
14127 "-ProjectFileFormat",
14128 Value: val.ToString(),
14129 Setter: '=',
14130 Meta: new(
14132 AllowMultiple: true
14133 )
14134 ));
14135 }
14136 }
14137 return (GenerateProjectFilesConfig) this;
14138 }
14139
14140
14141/// <summary>
14142/// Types of project files to generate
14143/// </summary>
14145 {
14146 if (true)
14147 {
14148 if (values != null)
14149 foreach (var val in values)
14150 {
14151 AppendArgument(new UnrealToolArgument(
14152 "-2012unsupported",
14153 Value: val.ToString(),
14154 Setter: '=',
14155 Meta: new(
14156 Compatibility: UnrealCompatibility.UE_4,
14157 AllowMultiple: true
14158 )
14159 ));
14160 }
14161 }
14162 return (GenerateProjectFilesConfig) this;
14163 }
14164
14165
14166/// <summary>
14167/// Types of project files to generate
14168/// </summary>
14170 {
14171 if (true)
14172 {
14173 if (values != null)
14174 foreach (var val in values)
14175 {
14176 AppendArgument(new UnrealToolArgument(
14177 "-2013unsupported",
14178 Value: val.ToString(),
14179 Setter: '=',
14180 Meta: new(
14181 Compatibility: UnrealCompatibility.UE_4,
14182 AllowMultiple: true
14183 )
14184 ));
14185 }
14186 }
14187 return (GenerateProjectFilesConfig) this;
14188 }
14189
14190
14191/// <summary>
14192/// Types of project files to generate
14193/// </summary>
14195 {
14196 if (true)
14197 {
14198 if (values != null)
14199 foreach (var val in values)
14200 {
14201 AppendArgument(new UnrealToolArgument(
14202 "-2015",
14203 Value: val.ToString(),
14204 Setter: '=',
14205 Meta: new(
14206 Compatibility: UnrealCompatibility.UE_4,
14207 AllowMultiple: true
14208 )
14209 ));
14210 }
14211 }
14212 return (GenerateProjectFilesConfig) this;
14213 }
14214
14215
14216/// <summary>
14217/// Types of project files to generate
14218/// </summary>
14220 {
14221 if (true)
14222 {
14223 if (values != null)
14224 foreach (var val in values)
14225 {
14226 AppendArgument(new UnrealToolArgument(
14227 "-2017",
14228 Value: val.ToString(),
14229 Setter: '=',
14230 Meta: new(
14231 Compatibility: UnrealCompatibility.UE_4,
14232 AllowMultiple: true
14233 )
14234 ));
14235 }
14236 }
14237 return (GenerateProjectFilesConfig) this;
14238 }
14239
14240
14241/// <summary>
14242/// Types of project files to generate
14243/// </summary>
14245 {
14246 if (true)
14247 {
14248 if (values != null)
14249 foreach (var val in values)
14250 {
14251 AppendArgument(new UnrealToolArgument(
14252 "-2019",
14253 Value: val.ToString(),
14254 Setter: '=',
14255 Meta: new(
14256 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
14257 AllowMultiple: true
14258 )
14259 ));
14260 }
14261 }
14262 return (GenerateProjectFilesConfig) this;
14263 }
14264
14265
14266/// <summary>
14267/// Types of project files to generate
14268/// </summary>
14270 {
14271 if (true)
14272 {
14273 if (values != null)
14274 foreach (var val in values)
14275 {
14276 AppendArgument(new UnrealToolArgument(
14277 "-2022",
14278 Value: val.ToString(),
14279 Setter: '=',
14280 Meta: new(
14282 AllowMultiple: true
14283 )
14284 ));
14285 }
14286 }
14287 return (GenerateProjectFilesConfig) this;
14288 }
14289
14290
14291/// <summary>
14292/// Types of project files to generate
14293/// </summary>
14295 {
14296 if (true)
14297 {
14298 if (values != null)
14299 foreach (var val in values)
14300 {
14301 AppendArgument(new UnrealToolArgument(
14302 "-Makefile",
14303 Value: val.ToString(),
14304 Setter: '=',
14305 Meta: new(
14307 AllowMultiple: true
14308 )
14309 ));
14310 }
14311 }
14312 return (GenerateProjectFilesConfig) this;
14313 }
14314
14315
14316/// <summary>
14317/// Types of project files to generate
14318/// </summary>
14320 {
14321 if (true)
14322 {
14323 if (values != null)
14324 foreach (var val in values)
14325 {
14326 AppendArgument(new UnrealToolArgument(
14327 "-CMakefile",
14328 Value: val.ToString(),
14329 Setter: '=',
14330 Meta: new(
14332 AllowMultiple: true
14333 )
14334 ));
14335 }
14336 }
14337 return (GenerateProjectFilesConfig) this;
14338 }
14339
14340
14341/// <summary>
14342/// Types of project files to generate
14343/// </summary>
14345 {
14346 if (true)
14347 {
14348 if (values != null)
14349 foreach (var val in values)
14350 {
14351 AppendArgument(new UnrealToolArgument(
14352 "-QMakefile",
14353 Value: val.ToString(),
14354 Setter: '=',
14355 Meta: new(
14357 AllowMultiple: true
14358 )
14359 ));
14360 }
14361 }
14362 return (GenerateProjectFilesConfig) this;
14363 }
14364
14365
14366/// <summary>
14367/// Types of project files to generate
14368/// </summary>
14370 {
14371 if (true)
14372 {
14373 if (values != null)
14374 foreach (var val in values)
14375 {
14376 AppendArgument(new UnrealToolArgument(
14377 "-KDevelopfile",
14378 Value: val.ToString(),
14379 Setter: '=',
14380 Meta: new(
14382 AllowMultiple: true
14383 )
14384 ));
14385 }
14386 }
14387 return (GenerateProjectFilesConfig) this;
14388 }
14389
14390
14391/// <summary>
14392/// Types of project files to generate
14393/// </summary>
14395 {
14396 if (true)
14397 {
14398 if (values != null)
14399 foreach (var val in values)
14400 {
14401 AppendArgument(new UnrealToolArgument(
14402 "-CodeLiteFiles",
14403 Value: val.ToString(),
14404 Setter: '=',
14405 Meta: new(
14407 AllowMultiple: true
14408 )
14409 ));
14410 }
14411 }
14412 return (GenerateProjectFilesConfig) this;
14413 }
14414
14415
14416/// <summary>
14417/// Types of project files to generate
14418/// </summary>
14420 {
14421 if (true)
14422 {
14423 if (values != null)
14424 foreach (var val in values)
14425 {
14426 AppendArgument(new UnrealToolArgument(
14427 "-XCodeProjectFiles",
14428 Value: val.ToString(),
14429 Setter: '=',
14430 Meta: new(
14432 AllowMultiple: true
14433 )
14434 ));
14435 }
14436 }
14437 return (GenerateProjectFilesConfig) this;
14438 }
14439
14440
14441/// <summary>
14442/// Types of project files to generate
14443/// </summary>
14445 {
14446 if (true)
14447 {
14448 if (values != null)
14449 foreach (var val in values)
14450 {
14451 AppendArgument(new UnrealToolArgument(
14452 "-EddieProjectFiles",
14453 Value: val.ToString(),
14454 Setter: '=',
14455 Meta: new(
14457 AllowMultiple: true
14458 )
14459 ));
14460 }
14461 }
14462 return (GenerateProjectFilesConfig) this;
14463 }
14464
14465
14466/// <summary>
14467/// Types of project files to generate
14468/// </summary>
14470 {
14471 if (true)
14472 {
14473 if (values != null)
14474 foreach (var val in values)
14475 {
14476 AppendArgument(new UnrealToolArgument(
14477 "-VSCode",
14478 Value: val.ToString(),
14479 Setter: '=',
14480 Meta: new(
14482 AllowMultiple: true
14483 )
14484 ));
14485 }
14486 }
14487 return (GenerateProjectFilesConfig) this;
14488 }
14489
14490
14491/// <summary>
14492/// Types of project files to generate
14493/// </summary>
14495 {
14496 if (true)
14497 {
14498 if (values != null)
14499 foreach (var val in values)
14500 {
14501 AppendArgument(new UnrealToolArgument(
14502 "-VSMac",
14503 Value: val.ToString(),
14504 Setter: '=',
14505 Meta: new(
14507 AllowMultiple: true
14508 )
14509 ));
14510 }
14511 }
14512 return (GenerateProjectFilesConfig) this;
14513 }
14514
14515
14516/// <summary>
14517/// Types of project files to generate
14518/// </summary>
14520 {
14521 if (true)
14522 {
14523 if (values != null)
14524 foreach (var val in values)
14525 {
14526 AppendArgument(new UnrealToolArgument(
14527 "-CLion",
14528 Value: val.ToString(),
14529 Setter: '=',
14530 Meta: new(
14532 AllowMultiple: true
14533 )
14534 ));
14535 }
14536 }
14537 return (GenerateProjectFilesConfig) this;
14538 }
14539
14540
14541/// <summary>
14542/// Types of project files to generate
14543/// </summary>
14545 {
14546 if (true)
14547 {
14548 if (values != null)
14549 foreach (var val in values)
14550 {
14551 AppendArgument(new UnrealToolArgument(
14552 "-Rider",
14553 Value: val.ToString(),
14554 Setter: '=',
14555 Meta: new(
14557 AllowMultiple: true
14558 )
14559 ));
14560 }
14561 }
14562 return (GenerateProjectFilesConfig) this;
14563 }
14564
14565
14566/// <summary>
14567/// Whether this command is being run in an automated mode
14568/// </summary>
14569 public virtual GenerateProjectFilesConfig Automated(bool? val = null)
14570 {
14571 if (true)
14572 {
14573 AppendArgument(new UnrealToolArgument(
14574 "-Automated",
14575 Value: val?.ToString(),
14576 Setter: '=',
14577 Meta: new(
14579 AllowMultiple: false
14580 )
14581 ));
14582 }
14583 return (GenerateProjectFilesConfig) this;
14584 }
14585
14586
14587/// <summary>
14588/// Types of project files to generate
14589/// </summary>
14591 {
14592 if (true)
14593 {
14594 if (values != null)
14595 foreach (var val in values)
14596 {
14597 AppendArgument(new UnrealToolArgument(
14598 "-VSWorkspace",
14599 Value: val.ToString(),
14600 Setter: '=',
14601 Meta: new(
14602 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
14603 AllowMultiple: true
14604 )
14605 ));
14606 }
14607 }
14608 return (GenerateProjectFilesConfig) this;
14609 }
14610
14611
14612/// <summary>
14613/// Types of project files to generate
14614/// </summary>
14616 {
14617 if (true)
14618 {
14619 if (values != null)
14620 foreach (var val in values)
14621 {
14622 AppendArgument(new UnrealToolArgument(
14623 "-VisualStudio",
14624 Value: val.ToString(),
14625 Setter: '=',
14626 Meta: new(
14627 Compatibility: UnrealCompatibility.UE_5_Latest,
14628 AllowMultiple: true
14629 )
14630 ));
14631 }
14632 }
14633 return (GenerateProjectFilesConfig) this;
14634 }
14635
14636
14637/// <summary>
14638/// Types of project files to generate
14639/// </summary>
14641 {
14642 if (true)
14643 {
14644 if (values != null)
14645 foreach (var val in values)
14646 {
14647 AppendArgument(new UnrealToolArgument(
14648 "-AndroidStudio",
14649 Value: val.ToString(),
14650 Setter: '=',
14651 Meta: new(
14652 Compatibility: UnrealCompatibility.UE_5_Latest,
14653 AllowMultiple: true
14654 )
14655 ));
14656 }
14657 }
14658 return (GenerateProjectFilesConfig) this;
14659 }
14660
14661
14662 private ToolConfig[] _configs = null;
14663 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
14664 {
14665 };
14666 }
14667
14668 protected readonly GenerateProjectFilesConfig GenerateProjectFilesStorage = new();
14669
14670/// <summary>
14671/// Exports a target as a JSON file
14672/// </summary>
14674 {
14675 public override string Name => "JsonExport";
14676 public override string CliName => "-JsonExport";
14677 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
14678
14679/// <summary>
14680/// Execute any actions which result in code generation (eg. ISPC compilation)
14681/// </summary>
14682 public virtual JsonExportConfig ExecCodeGenActions(bool? val = null)
14683 {
14684 if (true)
14685 {
14686 AppendArgument(new UnrealToolArgument(
14687 "-ExecCodeGenActions",
14688 Value: val?.ToString(),
14689 Setter: '=',
14690 Meta: new(
14692 AllowMultiple: false
14693 )
14694 ));
14695 }
14696 return (JsonExportConfig) this;
14697 }
14698
14699
14700 private ToolConfig[] _configs = null;
14701 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
14702 {
14703 };
14704 }
14705
14706 protected readonly JsonExportConfig JsonExportStorage = new();
14707
14708/// <summary>
14709/// Parses an MSVC timing info file generated from cl-filter to turn it into a form that can be used by other tooling.
14710/// This is implemented as a separate mode to allow it to be done as part of the action graph.
14711/// </summary>
14712/// <summary>
14713/// Parses an MSVC timing info file generated from cl-filter to turn it into a form that can be used by other tooling.
14714/// This is implemented as a separate mode to allow it to be done as part of the action graph.
14715/// </summary>
14717 {
14718 public override string Name => "ParseMsvcTimingInfo";
14719 public override string CliName => "-ParseMsvcTimingInfo";
14720 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
14721
14722 private ToolConfig[] _configs = null;
14723 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
14724 {
14725 };
14726 }
14727
14728 protected readonly ParseMsvcTimingInfoConfig ParseMsvcTimingInfoStorage = new();
14729
14730/// <summary>
14731/// Queries information about the targets supported by a project
14732/// </summary>
14734 {
14735 public override string Name => "QueryTargets";
14736 public override string CliName => "-QueryTargets";
14737 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
14738
14739/// <summary>
14740/// Path to the project file to query
14741/// </summary>
14742 public virtual QueryTargetsConfig Project(object val = null)
14743 {
14744 if (true)
14745 {
14746 AppendArgument(new UnrealToolArgument(
14747 "-Project",
14748 Value: val?.ToString(),
14749 Setter: '=',
14750 Meta: new(
14752 AllowMultiple: false
14753 )
14754 ));
14755 }
14756 return (QueryTargetsConfig) this;
14757 }
14758
14759
14760/// <summary>
14761/// Path to the output file to receive information about the targets
14762/// </summary>
14763 public virtual QueryTargetsConfig Output(object val = null)
14764 {
14765 if (true)
14766 {
14767 AppendArgument(new UnrealToolArgument(
14768 "-Output",
14769 Value: val?.ToString(),
14770 Setter: '=',
14771 Meta: new(
14773 AllowMultiple: false
14774 )
14775 ));
14776 }
14777 return (QueryTargetsConfig) this;
14778 }
14779
14780
14781/// <summary>
14782/// Write out all targets, even if a default is specified in the BuildSettings section of the Default*.ini files.
14783/// </summary>
14784 public virtual QueryTargetsConfig IncludeAllTargets(bool? val = null)
14785 {
14786 if (true)
14787 {
14788 AppendArgument(new UnrealToolArgument(
14789 "-IncludeAllTargets",
14790 Value: val?.ToString(),
14791 Setter: '=',
14792 Meta: new(
14793 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
14794 AllowMultiple: false
14795 )
14796 ));
14797 }
14798 return (QueryTargetsConfig) this;
14799 }
14800
14801
14802/// <summary>
14803/// Write all targets from parent assemblies (useful for EngineRules which can be chained)
14804/// </summary>
14805 public virtual QueryTargetsConfig IncludeParentAssembly(bool present = true)
14806 {
14807 if (present)
14808 {
14809 AppendArgument(new UnrealToolArgument(
14810 "-IncludeParentAssembly",
14811 Value: null,
14812 Setter: '=',
14813 Meta: new(
14814 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
14815 AllowMultiple: false
14816 )
14817 ));
14818 }
14819 return (QueryTargetsConfig) this;
14820 }
14821
14822
14823/// <summary>
14824/// Write all targets from parent assemblies (useful for EngineRules which can be chained)
14825/// </summary>
14826 public virtual QueryTargetsConfig DontIncludeParentAssembly(bool present = true)
14827 {
14828 if (present)
14829 {
14830 AppendArgument(new UnrealToolArgument(
14831 "-DontIncludeParentAssembly",
14832 Value: null,
14833 Setter: '=',
14834 Meta: new(
14835 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
14836 AllowMultiple: false
14837 )
14838 ));
14839 }
14840 return (QueryTargetsConfig) this;
14841 }
14842
14843
14844 private ToolConfig[] _configs = null;
14845 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
14846 {
14847 };
14848 }
14849
14850 protected readonly QueryTargetsConfig QueryTargetsStorage = new();
14851
14852/// <summary>
14853/// Register all platforms (and in the process, configure all autosdks)
14854/// </summary>
14856 {
14857 public override string Name => "SetupPlatforms";
14858 public override string CliName => "-SetupPlatforms";
14859 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
14860
14861 private ToolConfig[] _configs = null;
14862 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
14863 {
14864 };
14865 }
14866
14867 protected readonly SetupPlatformsConfig SetupPlatformsStorage = new();
14868
14869/// <summary>
14870/// Validates the various platforms to determine if they are ready for building
14871/// </summary>
14873 {
14874 public override string Name => "ValidatePlatforms";
14875 public override string CliName => "-ValidatePlatforms";
14876 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
14877
14878/// <summary>
14879/// Platforms to validate
14880/// </summary>
14881 public virtual ValidatePlatformsConfig Platforms(params object[] values)
14882 {
14883 if (true)
14884 {
14885 AppendArgument(new UnrealToolArgument(
14886 "-Platforms",
14887 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
14888 Setter: '=',
14889 Meta: new(
14891 AllowMultiple: true
14892 )
14893 ));
14894 }
14895 return (ValidatePlatformsConfig) this;
14896 }
14897
14898
14899/// <summary>
14900/// Whether to validate all platforms
14901/// </summary>
14902 public virtual ValidatePlatformsConfig AllPlatforms(bool? val = null)
14903 {
14904 if (true)
14905 {
14906 AppendArgument(new UnrealToolArgument(
14907 "-AllPlatforms",
14908 Value: val?.ToString(),
14909 Setter: '=',
14910 Meta: new(
14912 AllowMultiple: false
14913 )
14914 ));
14915 }
14916 return (ValidatePlatformsConfig) this;
14917 }
14918
14919
14920/// <summary>
14921/// Whether to output SDK versions.
14922/// </summary>
14923 public virtual ValidatePlatformsConfig OutputSDKs(bool? val = null)
14924 {
14925 if (true)
14926 {
14927 AppendArgument(new UnrealToolArgument(
14928 "-OutputSDKs",
14929 Value: val?.ToString(),
14930 Setter: '=',
14931 Meta: new(
14933 AllowMultiple: false
14934 )
14935 ));
14936 }
14937 return (ValidatePlatformsConfig) this;
14938 }
14939
14940
14941 private ToolConfig[] _configs = null;
14942 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
14943 {
14944 };
14945 }
14946
14947 protected readonly ValidatePlatformsConfig ValidatePlatformsStorage = new();
14948
14949/// <summary>
14950/// Generates documentation from reflection data
14951/// </summary>
14953 {
14954 public override string Name => "WriteDocumentation";
14955 public override string CliName => "-WriteDocumentation";
14956 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
14957
14958/// <summary>Type of documentation to generate
14959/// REQUIRED!</summary>
14961 {
14962 if (true)
14963 {
14964 AppendArgument(new UnrealToolArgument(
14965 "-Type",
14966 Value: val?.ToString(),
14967 Setter: '=',
14968 Meta: new(
14970 AllowMultiple: false
14971 )
14972 ));
14973 }
14974 return (WriteDocumentationConfig) this;
14975 }
14976
14977
14978/// <summary>The HTML file to write to
14979/// REQUIRED!</summary>
14980 public virtual WriteDocumentationConfig OutputFile(object val = null)
14981 {
14982 if (true)
14983 {
14984 AppendArgument(new UnrealToolArgument(
14985 "-OutputFile",
14986 Value: val?.ToString(),
14987 Setter: '=',
14988 Meta: new(
14990 AllowMultiple: false
14991 )
14992 ));
14993 }
14994 return (WriteDocumentationConfig) this;
14995 }
14996
14997
14998 private ToolConfig[] _configs = null;
14999 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
15000 {
15001 };
15002 }
15003
15004 protected readonly WriteDocumentationConfig WriteDocumentationStorage = new();
15005
15006/// <summary>
15007/// Writes all metadata files at the end of a build (receipts, version files, etc...). This is implemented as a separate mode to allow it to be done as part of the action graph.
15008/// </summary>
15010 {
15011 public override string Name => "WriteMetadata";
15012 public override string CliName => "-WriteMetadata";
15013 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
15014
15015 private ToolConfig[] _configs = null;
15016 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
15017 {
15018 };
15019 }
15020
15021 protected readonly WriteMetadataConfig WriteMetadataStorage = new();
15022
15023/// <summary></summary>
15025 {
15026 public override string Name => "AndroidToolChain";
15027 public override string CliName => "";
15028 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1;
15029
15030/// <summary>
15031/// Lists Architectures that you want to build
15032/// </summary>
15033 public virtual AndroidToolChainConfig Architectures(params object[] values)
15034 {
15035 if (true)
15036 {
15037 AppendArgument(new UnrealToolArgument(
15038 "-Architectures",
15039 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
15040 Setter: '=',
15041 Meta: new(
15042 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1,
15043 AllowMultiple: true
15044 )
15045 ));
15046 }
15047 return (AndroidToolChainConfig) this;
15048 }
15049
15050
15051 private ToolConfig[] _configs = null;
15052 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
15053 {
15054 };
15055 }
15056
15057 protected readonly AndroidToolChainConfig AndroidToolChainStorage = new();
15058
15059/// <summary>
15060/// Android-specific target settings
15061/// </summary>
15063 {
15064 public override string Name => "AndroidTargetRules";
15065 public override string CliName => "";
15066 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
15067
15068/// <summary>
15069/// Lists Architectures that you want to build
15070/// </summary>
15071 public virtual AndroidTargetRulesConfig Architectures(params object[] values)
15072 {
15073 if (true)
15074 {
15075 AppendArgument(new UnrealToolArgument(
15076 "-Architectures",
15077 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
15078 Setter: '=',
15079 Meta: new(
15080 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1,
15081 AllowMultiple: true
15082 )
15083 ));
15084 }
15085 return (AndroidTargetRulesConfig) this;
15086 }
15087
15088
15089/// <summary>
15090/// Lists GPU Architectures that you want to build (mostly used for mobile etc.)
15091/// </summary>
15092 public virtual AndroidTargetRulesConfig GPUArchitectures(params object[] values)
15093 {
15094 if (true)
15095 {
15096 AppendArgument(new UnrealToolArgument(
15097 "-GPUArchitectures",
15098 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
15099 Setter: '=',
15100 Meta: new(
15101 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1,
15102 AllowMultiple: true
15103 )
15104 ));
15105 }
15106 return (AndroidTargetRulesConfig) this;
15107 }
15108
15109
15110/// <summary>Enables address sanitizer (ASan)
15111/// Enables address sanitizer (ASan).
15112/// Enables address sanitizer (ASan). Only supported for Visual Studio 2019 16.7.0 and up.</summary>
15113 public virtual AndroidTargetRulesConfig EnableASan(bool? val = null)
15114 {
15115 if (true)
15116 {
15117 AppendArgument(new UnrealToolArgument(
15118 "-EnableASan",
15119 Value: val?.ToString(),
15120 Setter: '=',
15121 Meta: new(
15122 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
15123 AllowMultiple: false
15124 )
15125 ));
15126 }
15127 return (AndroidTargetRulesConfig) this;
15128 }
15129
15130
15131/// <summary>
15132/// Enables HW address sanitizer (HWASan)
15133/// </summary>
15134 public virtual AndroidTargetRulesConfig EnableHWASan(bool? val = null)
15135 {
15136 if (true)
15137 {
15138 AppendArgument(new UnrealToolArgument(
15139 "-EnableHWASan",
15140 Value: val?.ToString(),
15141 Setter: '=',
15142 Meta: new(
15143 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
15144 AllowMultiple: false
15145 )
15146 ));
15147 }
15148 return (AndroidTargetRulesConfig) this;
15149 }
15150
15151
15152/// <summary>Enables undefined behavior sanitizer (UBSan)
15153/// Enables undefined behavior sanitizer (UBSan).</summary>
15154 public virtual AndroidTargetRulesConfig EnableUBSan(bool? val = null)
15155 {
15156 if (true)
15157 {
15158 AppendArgument(new UnrealToolArgument(
15159 "-EnableUBSan",
15160 Value: val?.ToString(),
15161 Setter: '=',
15162 Meta: new(
15163 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
15164 AllowMultiple: false
15165 )
15166 ));
15167 }
15168 return (AndroidTargetRulesConfig) this;
15169 }
15170
15171
15172/// <summary>
15173/// Enables minimal undefined behavior sanitizer (UBSan)
15174/// </summary>
15175 public virtual AndroidTargetRulesConfig EnableMinUBSan(bool? val = null)
15176 {
15177 if (true)
15178 {
15179 AppendArgument(new UnrealToolArgument(
15180 "-EnableMinUBSan",
15181 Value: val?.ToString(),
15182 Setter: '=',
15183 Meta: new(
15184 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
15185 AllowMultiple: false
15186 )
15187 ));
15188 }
15189 return (AndroidTargetRulesConfig) this;
15190 }
15191
15192
15193 private ToolConfig[] _configs = null;
15194 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
15195 {
15196 };
15197 }
15198
15199 protected readonly AndroidTargetRulesConfig AndroidTargetRulesStorage = new();
15200
15201/// <summary></summary>
15203 {
15204 public override string Name => "UEDeployAndroid";
15205 public override string CliName => "";
15206 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
15207
15208/// <summary>
15209/// Ignore AppBundle (AAB) generation setting if "-ForceAPKGeneration" specified
15210/// </summary>
15211 public virtual UEDeployAndroidConfig ForceAPKGeneration(bool present = true)
15212 {
15213 if (present)
15214 {
15215 AppendArgument(new UnrealToolArgument(
15216 "-ForceAPKGeneration",
15217 Value: null,
15218 Setter: '=',
15219 Meta: new(
15221 AllowMultiple: false
15222 )
15223 ));
15224 }
15225 return (UEDeployAndroidConfig) this;
15226 }
15227
15228
15229/// <summary>
15230/// Do not use Gradle if previous APK exists and only libUnreal.so changed
15231/// </summary>
15232 public virtual UEDeployAndroidConfig BypassGradlePackaging(bool present = true)
15233 {
15234 if (present)
15235 {
15236 AppendArgument(new UnrealToolArgument(
15237 "-BypassGradlePackaging",
15238 Value: null,
15239 Setter: '=',
15240 Meta: new(
15241 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
15242 AllowMultiple: false
15243 )
15244 ));
15245 }
15246 return (UEDeployAndroidConfig) this;
15247 }
15248
15249
15250/// <summary>
15251/// Whether UBT is invoked from MSBuild.
15252/// If false will, disable bDontBundleLibrariesInAPK, unless forced .
15253/// </summary>
15254 public virtual UEDeployAndroidConfig FromMsBuild(bool present = true)
15255 {
15256 if (present)
15257 {
15258 AppendArgument(new UnrealToolArgument(
15259 "-FromMsBuild",
15260 Value: null,
15261 Setter: '=',
15262 Meta: new(
15263 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
15264 AllowMultiple: false
15265 )
15266 ));
15267 }
15268 return (UEDeployAndroidConfig) this;
15269 }
15270
15271
15272/// <summary>
15273/// Forcing bDontBundleLibrariesInAPK to "true" or "false" ignoring any other option.
15274/// </summary>
15276 {
15277 if (true)
15278 {
15279 AppendArgument(new UnrealToolArgument(
15280 "-ForceDontBundleLibrariesInAPK",
15281 Value: val?.ToString(),
15282 Setter: '=',
15283 Meta: new(
15284 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
15285 AllowMultiple: false
15286 )
15287 ));
15288 }
15289 return (UEDeployAndroidConfig) this;
15290 }
15291
15292
15293/// <summary>
15294/// Adds LD_PRELOAD'ed .so to capture all malloc/free/etc calls to libc.so and route them to our memory tracing.
15295/// </summary>
15296 public virtual UEDeployAndroidConfig ScudoMemoryTracing(bool present = true)
15297 {
15298 if (present)
15299 {
15300 AppendArgument(new UnrealToolArgument(
15301 "-ScudoMemoryTracing",
15302 Value: null,
15303 Setter: '=',
15304 Meta: new(
15305 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
15306 AllowMultiple: false
15307 )
15308 ));
15309 }
15310 return (UEDeployAndroidConfig) this;
15311 }
15312
15313
15314/// <summary>
15315/// Makes build interation faster
15316/// </summary>
15317 public virtual UEDeployAndroidConfig FastIterate(bool present = true)
15318 {
15319 if (present)
15320 {
15321 AppendArgument(new UnrealToolArgument(
15322 "-FastIterate",
15323 Value: null,
15324 Setter: '=',
15325 Meta: new(
15326 Compatibility: UnrealCompatibility.UE_5_Latest,
15327 AllowMultiple: false
15328 )
15329 ));
15330 }
15331 return (UEDeployAndroidConfig) this;
15332 }
15333
15334
15335/// <summary>
15336/// Only generates gradle
15337/// </summary>
15338 public virtual UEDeployAndroidConfig OnlyGradleGeneration(bool present = true)
15339 {
15340 if (present)
15341 {
15342 AppendArgument(new UnrealToolArgument(
15343 "-OnlyGradleGeneration",
15344 Value: null,
15345 Setter: '=',
15346 Meta: new(
15347 Compatibility: UnrealCompatibility.UE_5_Latest,
15348 AllowMultiple: false
15349 )
15350 ));
15351 }
15352 return (UEDeployAndroidConfig) this;
15353 }
15354
15355
15356 private ToolConfig[] _configs = null;
15357 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
15358 {
15359 };
15360 }
15361
15362 protected readonly UEDeployAndroidConfig UEDeployAndroidStorage = new();
15363
15364/// <summary>
15365/// HoloLens-specific target settings
15366/// </summary>
15368 {
15369 public override string Name => "HoloLensTargetRules";
15370 public override string CliName => "";
15371 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0;
15372
15373/// <summary>Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a specific version at UBT startup.
15374/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.</summary>
15375 public virtual HoloLensTargetRulesConfig _2015(bool present = true)
15376 {
15377 if (present)
15378 {
15379 AppendArgument(new UnrealToolArgument(
15380 "-2015",
15381 Value: null,
15382 Setter: '=',
15383 Meta: new(
15384 Compatibility: UnrealCompatibility.UE_4,
15385 AllowMultiple: false
15386 )
15387 ));
15388 }
15389 return (HoloLensTargetRulesConfig) this;
15390 }
15391
15392
15393/// <summary>Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a specific version at UBT startup.
15394/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.</summary>
15396 {
15397 if (true)
15398 {
15399 AppendArgument(new UnrealToolArgument(
15400 "-2017",
15401 Value: val?.ToString(),
15402 Setter: '=',
15403 Meta: new(
15404 Compatibility: UnrealCompatibility.UE_4,
15405 AllowMultiple: false
15406 )
15407 ));
15408 }
15409 return (HoloLensTargetRulesConfig) this;
15410 }
15411
15412
15413/// <summary>Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a specific version at UBT startup.
15414/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.</summary>
15416 {
15417 if (true)
15418 {
15419 AppendArgument(new UnrealToolArgument(
15420 "-2019",
15421 Value: val?.ToString(),
15422 Setter: '=',
15423 Meta: new(
15424 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
15425 AllowMultiple: false
15426 )
15427 ));
15428 }
15429 return (HoloLensTargetRulesConfig) this;
15430 }
15431
15432
15433/// <summary>Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a specific version at UBT startup.
15434/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.</summary>
15436 {
15437 if (true)
15438 {
15439 AppendArgument(new UnrealToolArgument(
15440 "-2022",
15441 Value: val?.ToString(),
15442 Setter: '=',
15443 Meta: new(
15445 AllowMultiple: false
15446 )
15447 ));
15448 }
15449 return (HoloLensTargetRulesConfig) this;
15450 }
15451
15452
15453 private ToolConfig[] _configs = null;
15454 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
15455 {
15456 };
15457 }
15458
15459 protected readonly HoloLensTargetRulesConfig HoloLensTargetRulesStorage = new();
15460
15461
15463 {
15464 public override string Name => "IOSPostBuildSync";
15465 public override string CliName => "-IOSPostBuildSync";
15466 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
15467
15468/// <summary>REQUIRED!</summary>
15469 public virtual IOSPostBuildSyncConfig Input(object val = null)
15470 {
15471 if (true)
15472 {
15473 AppendArgument(new UnrealToolArgument(
15474 "-Input",
15475 Value: val?.ToString(),
15476 Setter: '=',
15477 Meta: new(
15479 AllowMultiple: false
15480 )
15481 ));
15482 }
15483 return (IOSPostBuildSyncConfig) this;
15484 }
15485
15486
15487
15488 public virtual IOSPostBuildSyncConfig XmlConfigCache(object val = null)
15489 {
15490 if (true)
15491 {
15492 AppendArgument(new UnrealToolArgument(
15493 "-XmlConfigCache",
15494 Value: val?.ToString(),
15495 Setter: '=',
15496 Meta: new(
15498 AllowMultiple: false
15499 )
15500 ));
15501 }
15502 return (IOSPostBuildSyncConfig) this;
15503 }
15504
15505
15506
15507 public virtual IOSPostBuildSyncConfig LegacyXcode(bool? val = null)
15508 {
15509 if (true)
15510 {
15511 AppendArgument(new UnrealToolArgument(
15512 "-LegacyXcode",
15513 Value: val?.ToString(),
15514 Setter: '=',
15515 Meta: new(
15516 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
15517 AllowMultiple: false
15518 )
15519 ));
15520 }
15521 return (IOSPostBuildSyncConfig) this;
15522 }
15523
15524
15525 private ToolConfig[] _configs = null;
15526 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
15527 {
15528 };
15529 }
15530
15531 protected readonly IOSPostBuildSyncConfig IOSPostBuildSyncStorage = new();
15532
15533/// <summary>
15534/// IOS-specific target settings
15535/// </summary>
15537 {
15538 public override string Name => "IOSTargetRules";
15539 public override string CliName => "";
15540 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
15541
15542/// <summary>Whether to strip iOS symbols or not (implied by Shipping config).
15543/// Whether to strip symbols or not (implied by Shipping config).</summary>
15544 public virtual IOSTargetRulesConfig Stripsymbols(bool present = true)
15545 {
15546 if (present)
15547 {
15548 AppendArgument(new UnrealToolArgument(
15549 "-stripsymbols",
15550 Value: null,
15551 Setter: '=',
15552 Meta: new(
15554 AllowMultiple: false
15555 )
15556 ));
15557 }
15558 return (IOSTargetRulesConfig) this;
15559 }
15560
15561
15562/// <summary>
15563/// If true, then a stub IPA will be generated when compiling is done (minimal files needed for a valid IPA).
15564/// </summary>
15565 public virtual IOSTargetRulesConfig CreateStub(bool present = true)
15566 {
15567 if (present)
15568 {
15569 AppendArgument(new UnrealToolArgument(
15570 "-CreateStub",
15571 Value: null,
15572 Setter: '=',
15573 Meta: new(
15575 AllowMultiple: false
15576 )
15577 ));
15578 }
15579 return (IOSTargetRulesConfig) this;
15580 }
15581
15582
15583/// <summary>
15584/// Don't generate crashlytics data
15585/// </summary>
15586 public virtual IOSTargetRulesConfig Alwaysgeneratedsym(bool present = true)
15587 {
15588 if (present)
15589 {
15590 AppendArgument(new UnrealToolArgument(
15591 "-alwaysgeneratedsym",
15592 Value: null,
15593 Setter: '=',
15594 Meta: new(
15596 AllowMultiple: false
15597 )
15598 ));
15599 }
15600 return (IOSTargetRulesConfig) this;
15601 }
15602
15603
15604/// <summary>
15605/// Don't generate crashlytics data
15606/// </summary>
15607 public virtual IOSTargetRulesConfig Skipcrashlytics(bool? val = null)
15608 {
15609 if (true)
15610 {
15611 AppendArgument(new UnrealToolArgument(
15612 "-skipcrashlytics",
15613 Value: val?.ToString(),
15614 Setter: '=',
15615 Meta: new(
15617 AllowMultiple: false
15618 )
15619 ));
15620 }
15621 return (IOSTargetRulesConfig) this;
15622 }
15623
15624
15625/// <summary>Mark the build for distribution
15626/// If -distribution was passed on the commandline, this build is for distribution.</summary>
15627 public virtual IOSTargetRulesConfig Distribution(bool? val = null)
15628 {
15629 if (true)
15630 {
15631 AppendArgument(new UnrealToolArgument(
15632 "-distribution",
15633 Value: val?.ToString(),
15634 Setter: '=',
15635 Meta: new(
15637 AllowMultiple: false
15638 )
15639 ));
15640 }
15641 return (IOSTargetRulesConfig) this;
15642 }
15643
15644
15645/// <summary>
15646/// Manual override for the provision to use. Should be a full path.
15647/// </summary>
15648 public virtual IOSTargetRulesConfig ImportProvision(object val = null)
15649 {
15650 if (true)
15651 {
15652 AppendArgument(new UnrealToolArgument(
15653 "-ImportProvision",
15654 Value: val?.ToString(),
15655 Setter: '=',
15656 Meta: new(
15658 AllowMultiple: false
15659 )
15660 ));
15661 }
15662 return (IOSTargetRulesConfig) this;
15663 }
15664
15665
15666/// <summary>
15667/// Imports the given certificate (inc private key) into a temporary keychain before signing.
15668/// </summary>
15669 public virtual IOSTargetRulesConfig ImportCertificate(object val = null)
15670 {
15671 if (true)
15672 {
15673 AppendArgument(new UnrealToolArgument(
15674 "-ImportCertificate",
15675 Value: val?.ToString(),
15676 Setter: '=',
15677 Meta: new(
15679 AllowMultiple: false
15680 )
15681 ));
15682 }
15683 return (IOSTargetRulesConfig) this;
15684 }
15685
15686
15687/// <summary>
15688/// Password for the imported certificate
15689/// </summary>
15690 public virtual IOSTargetRulesConfig ImportCertificatePassword(object val = null)
15691 {
15692 if (true)
15693 {
15694 AppendArgument(new UnrealToolArgument(
15695 "-ImportCertificatePassword",
15696 Value: val?.ToString(),
15697 Setter: '=',
15698 Meta: new(
15700 AllowMultiple: false
15701 )
15702 ));
15703 }
15704 return (IOSTargetRulesConfig) this;
15705 }
15706
15707
15708/// <summary>
15709/// Enables address sanitizer (ASan)
15710/// </summary>
15711 public virtual IOSTargetRulesConfig EnableASan(bool? val = null)
15712 {
15713 if (true)
15714 {
15715 AppendArgument(new UnrealToolArgument(
15716 "-EnableASan",
15717 Value: val?.ToString(),
15718 Setter: '=',
15719 Meta: new(
15720 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6,
15721 AllowMultiple: false
15722 )
15723 ));
15724 }
15725 return (IOSTargetRulesConfig) this;
15726 }
15727
15728
15729/// <summary>Enables thread sanitizer (TSan)
15730/// Enables thread sanitizer (TSan).</summary>
15731 public virtual IOSTargetRulesConfig EnableTSan(bool? val = null)
15732 {
15733 if (true)
15734 {
15735 AppendArgument(new UnrealToolArgument(
15736 "-EnableTSan",
15737 Value: val?.ToString(),
15738 Setter: '=',
15739 Meta: new(
15740 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6,
15741 AllowMultiple: false
15742 )
15743 ));
15744 }
15745 return (IOSTargetRulesConfig) this;
15746 }
15747
15748
15749/// <summary>
15750/// Enables undefined behavior sanitizer (UBSan)
15751/// </summary>
15752 public virtual IOSTargetRulesConfig EnableUBSan(bool? val = null)
15753 {
15754 if (true)
15755 {
15756 AppendArgument(new UnrealToolArgument(
15757 "-EnableUBSan",
15758 Value: val?.ToString(),
15759 Setter: '=',
15760 Meta: new(
15761 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6,
15762 AllowMultiple: false
15763 )
15764 ));
15765 }
15766 return (IOSTargetRulesConfig) this;
15767 }
15768
15769
15770/// <summary>
15771/// Disables clang build verification checks on static libraries
15772/// </summary>
15773 public virtual IOSTargetRulesConfig Skipclangvalidation(bool present = true)
15774 {
15775 if (present)
15776 {
15777 AppendArgument(new UnrealToolArgument(
15778 "-skipclangvalidation",
15779 Value: null,
15780 Setter: '=',
15781 Meta: new(
15782 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
15783 AllowMultiple: false
15784 )
15785 ));
15786 }
15787 return (IOSTargetRulesConfig) this;
15788 }
15789
15790
15791/// <summary>Don't generate crashlytics data
15792/// Enables the generation of .dsym files. This can be disabled to enable faster iteration times during development.</summary>
15793 public virtual IOSTargetRulesConfig EnableDSYM(bool present = true)
15794 {
15795 if (present)
15796 {
15797 AppendArgument(new UnrealToolArgument(
15798 "-EnableDSYM",
15799 Value: null,
15800 Setter: '=',
15801 Meta: new(
15802 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
15803 AllowMultiple: false
15804 )
15805 ));
15806 }
15807 return (IOSTargetRulesConfig) this;
15808 }
15809
15810
15811 private ToolConfig[] _configs = null;
15812 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
15813 {
15814 };
15815 }
15816
15817 protected readonly IOSTargetRulesConfig IOSTargetRulesStorage = new();
15818
15819/// <summary>
15820/// Stores project-specific IOS settings. Instances of this object are cached by IOSPlatform.
15821/// </summary>
15823 {
15824 public override string Name => "IOSProjectSettings";
15825 public override string CliName => "";
15826 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
15827
15828/// <summary>
15829/// Whether to build the iOS project as a framework.
15830/// </summary>
15831 public virtual IOSProjectSettingsConfig BuildAsFramework(bool? val = null)
15832 {
15833 if (true)
15834 {
15835 AppendArgument(new UnrealToolArgument(
15836 "-build-as-framework",
15837 Value: val?.ToString(),
15838 Setter: '=',
15839 Meta: new(
15841 AllowMultiple: false
15842 )
15843 ));
15844 }
15845 return (IOSProjectSettingsConfig) this;
15846 }
15847
15848
15849/// <summary>
15850/// Whether to generate a dSYM file or not.
15851/// </summary>
15852 public virtual IOSProjectSettingsConfig Generatedsymfile(bool? val = null)
15853 {
15854 if (true)
15855 {
15856 AppendArgument(new UnrealToolArgument(
15857 "-generatedsymfile",
15858 Value: val?.ToString(),
15859 Setter: '=',
15860 Meta: new(
15862 AllowMultiple: false
15863 )
15864 ));
15865 }
15866 return (IOSProjectSettingsConfig) this;
15867 }
15868
15869
15870/// <summary>
15871/// Whether to generate a dSYM bundle (as opposed to single file dSYM)
15872/// </summary>
15873 public virtual IOSProjectSettingsConfig Generatedsymbundle(bool? val = null)
15874 {
15875 if (true)
15876 {
15877 AppendArgument(new UnrealToolArgument(
15878 "-generatedsymbundle",
15879 Value: val?.ToString(),
15880 Setter: '=',
15881 Meta: new(
15883 AllowMultiple: false
15884 )
15885 ));
15886 }
15887 return (IOSProjectSettingsConfig) this;
15888 }
15889
15890
15891 private ToolConfig[] _configs = null;
15892 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
15893 {
15894 };
15895 }
15896
15897 protected readonly IOSProjectSettingsConfig IOSProjectSettingsStorage = new();
15898
15899/// <summary>
15900/// Linux-specific target settings
15901/// </summary>
15903 {
15904 public override string Name => "LinuxTargetRules";
15905 public override string CliName => "";
15906 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
15907
15908/// <summary>Enables address sanitizer (ASan)
15909/// Enables address sanitizer (ASan).
15910/// Enables address sanitizer (ASan). Only supported for Visual Studio 2019 16.7.0 and up.</summary>
15911 public virtual LinuxTargetRulesConfig EnableASan(bool? val = null)
15912 {
15913 if (true)
15914 {
15915 AppendArgument(new UnrealToolArgument(
15916 "-EnableASan",
15917 Value: val?.ToString(),
15918 Setter: '=',
15919 Meta: new(
15921 AllowMultiple: false
15922 )
15923 ));
15924 }
15925 return (LinuxTargetRulesConfig) this;
15926 }
15927
15928
15929/// <summary>Enables thread sanitizer (TSan)
15930/// Enables thread sanitizer (TSan).</summary>
15931 public virtual LinuxTargetRulesConfig EnableTSan(bool? val = null)
15932 {
15933 if (true)
15934 {
15935 AppendArgument(new UnrealToolArgument(
15936 "-EnableTSan",
15937 Value: val?.ToString(),
15938 Setter: '=',
15939 Meta: new(
15941 AllowMultiple: false
15942 )
15943 ));
15944 }
15945 return (LinuxTargetRulesConfig) this;
15946 }
15947
15948
15949/// <summary>Enables undefined behavior sanitizer (UBSan)
15950/// Enables undefined behavior sanitizer (UBSan).</summary>
15951 public virtual LinuxTargetRulesConfig EnableUBSan(bool? val = null)
15952 {
15953 if (true)
15954 {
15955 AppendArgument(new UnrealToolArgument(
15956 "-EnableUBSan",
15957 Value: val?.ToString(),
15958 Setter: '=',
15959 Meta: new(
15961 AllowMultiple: false
15962 )
15963 ));
15964 }
15965 return (LinuxTargetRulesConfig) this;
15966 }
15967
15968
15969/// <summary>
15970/// Enables memory sanitizer (MSan)
15971/// </summary>
15972 public virtual LinuxTargetRulesConfig EnableMSan(bool? val = null)
15973 {
15974 if (true)
15975 {
15976 AppendArgument(new UnrealToolArgument(
15977 "-EnableMSan",
15978 Value: val?.ToString(),
15979 Setter: '=',
15980 Meta: new(
15982 AllowMultiple: false
15983 )
15984 ));
15985 }
15986 return (LinuxTargetRulesConfig) this;
15987 }
15988
15989
15990/// <summary>Enables "thin" LTO
15991/// When Link Time Code Generation (LTCG) is enabled, whether to
15992/// prefer using the lighter weight version on supported platforms.</summary>
15993 public virtual LinuxTargetRulesConfig ThinLTO(bool? val = null)
15994 {
15995 if (true)
15996 {
15997 AppendArgument(new UnrealToolArgument(
15998 "-ThinLTO",
15999 Value: val?.ToString(),
16000 Setter: '=',
16001 Meta: new(
16003 AllowMultiple: false
16004 )
16005 ));
16006 }
16007 return (LinuxTargetRulesConfig) this;
16008 }
16009
16010
16011/// <summary>
16012/// Turns on tuning of debug info for LLDB
16013/// </summary>
16014 public virtual LinuxTargetRulesConfig EnableLLDB(bool? val = null)
16015 {
16016 if (true)
16017 {
16018 AppendArgument(new UnrealToolArgument(
16019 "-EnableLLDB",
16020 Value: val?.ToString(),
16021 Setter: '=',
16022 Meta: new(
16023 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16024 AllowMultiple: false
16025 )
16026 ));
16027 }
16028 return (LinuxTargetRulesConfig) this;
16029 }
16030
16031
16032/// <summary>Enables LibFuzzer
16033/// Enables LibFuzzer.
16034/// Enables LibFuzzer. Only supported for Visual Studio 2022 17.0.0 and up.</summary>
16035 public virtual LinuxTargetRulesConfig EnableLibFuzzer(bool? val = null)
16036 {
16037 if (true)
16038 {
16039 AppendArgument(new UnrealToolArgument(
16040 "-EnableLibFuzzer",
16041 Value: val?.ToString(),
16042 Setter: '=',
16043 Meta: new(
16044 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16045 AllowMultiple: false
16046 )
16047 ));
16048 }
16049 return (LinuxTargetRulesConfig) this;
16050 }
16051
16052
16053/// <summary>
16054/// Whether to globally disable calling dump_syms
16055/// </summary>
16056 public virtual LinuxTargetRulesConfig NoDumpSyms(bool? val = null)
16057 {
16058 if (true)
16059 {
16060 AppendArgument(new UnrealToolArgument(
16061 "-NoDumpSyms",
16062 Value: val?.ToString(),
16063 Setter: '=',
16064 Meta: new(
16065 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16066 AllowMultiple: false
16067 )
16068 ));
16069 }
16070 return (LinuxTargetRulesConfig) this;
16071 }
16072
16073
16074/// <summary>
16075/// Whether to globally skip symbol stripping
16076/// </summary>
16077 public virtual LinuxTargetRulesConfig NoStripSymbols(bool? val = null)
16078 {
16079 if (true)
16080 {
16081 AppendArgument(new UnrealToolArgument(
16082 "-NoStripSymbols",
16083 Value: val?.ToString(),
16084 Setter: '=',
16085 Meta: new(
16086 Compatibility: UnrealCompatibility.UE_5_Latest,
16087 AllowMultiple: false
16088 )
16089 ));
16090 }
16091 return (LinuxTargetRulesConfig) this;
16092 }
16093
16094
16095 private ToolConfig[] _configs = null;
16096 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
16097 {
16098 };
16099 }
16100
16101 protected readonly LinuxTargetRulesConfig LinuxTargetRulesStorage = new();
16102
16103/// <summary></summary>
16105 {
16106 public override string Name => "LuminToolChain";
16107 public override string CliName => "";
16108 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4;
16109
16110
16111 public virtual LuminToolChainConfig GpuArchitectures(params object[] values)
16112 {
16113 if (true)
16114 {
16115 AppendArgument(new UnrealToolArgument(
16116 "-GpuArchitectures",
16117 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
16118 Setter: '=',
16119 Meta: new(
16120 Compatibility: UnrealCompatibility.UE_4,
16121 AllowMultiple: true
16122 )
16123 ));
16124 }
16125 return (LuminToolChainConfig) this;
16126 }
16127
16128
16129 private ToolConfig[] _configs = null;
16130 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
16131 {
16132 };
16133 }
16134
16135 protected readonly LuminToolChainConfig LuminToolChainStorage = new();
16136
16137/// <summary>
16138/// Lumin-specific target settings
16139/// </summary>
16141 {
16142 public override string Name => "LuminTargetRules";
16143 public override string CliName => "";
16144 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4;
16145
16146/// <summary>
16147/// Lists GPU Architectures that you want to build (mostly used for mobile etc.)
16148/// </summary>
16149 public virtual LuminTargetRulesConfig GPUArchitectures(params object[] values)
16150 {
16151 if (true)
16152 {
16153 AppendArgument(new UnrealToolArgument(
16154 "-GPUArchitectures",
16155 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
16156 Setter: '=',
16157 Meta: new(
16158 Compatibility: UnrealCompatibility.UE_4,
16159 AllowMultiple: true
16160 )
16161 ));
16162 }
16163 return (LuminTargetRulesConfig) this;
16164 }
16165
16166
16167/// <summary>
16168/// If -distribution was passed on the commandline, this build is for distribution.
16169/// </summary>
16170 public virtual LuminTargetRulesConfig Distribution(bool? val = null)
16171 {
16172 if (true)
16173 {
16174 AppendArgument(new UnrealToolArgument(
16175 "-distribution",
16176 Value: val?.ToString(),
16177 Setter: '=',
16178 Meta: new(
16179 Compatibility: UnrealCompatibility.UE_4,
16180 AllowMultiple: false
16181 )
16182 ));
16183 }
16184 return (LuminTargetRulesConfig) this;
16185 }
16186
16187
16188 private ToolConfig[] _configs = null;
16189 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
16190 {
16191 };
16192 }
16193
16194 protected readonly LuminTargetRulesConfig LuminTargetRulesStorage = new();
16195
16196/// <summary>
16197/// Mac-specific target settings
16198/// </summary>
16200 {
16201 public override string Name => "MacTargetRules";
16202 public override string CliName => "";
16203 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
16204
16205/// <summary>
16206/// Enables address sanitizer (ASan).
16207/// </summary>
16208 public virtual MacTargetRulesConfig EnableASan(bool? val = null)
16209 {
16210 if (true)
16211 {
16212 AppendArgument(new UnrealToolArgument(
16213 "-EnableASan",
16214 Value: val?.ToString(),
16215 Setter: '=',
16216 Meta: new(
16218 AllowMultiple: false
16219 )
16220 ));
16221 }
16222 return (MacTargetRulesConfig) this;
16223 }
16224
16225
16226/// <summary>
16227/// Enables thread sanitizer (TSan).
16228/// </summary>
16229 public virtual MacTargetRulesConfig EnableTSan(bool? val = null)
16230 {
16231 if (true)
16232 {
16233 AppendArgument(new UnrealToolArgument(
16234 "-EnableTSan",
16235 Value: val?.ToString(),
16236 Setter: '=',
16237 Meta: new(
16239 AllowMultiple: false
16240 )
16241 ));
16242 }
16243 return (MacTargetRulesConfig) this;
16244 }
16245
16246
16247/// <summary>
16248/// Enables undefined behavior sanitizer (UBSan).
16249/// </summary>
16250 public virtual MacTargetRulesConfig EnableUBSan(bool? val = null)
16251 {
16252 if (true)
16253 {
16254 AppendArgument(new UnrealToolArgument(
16255 "-EnableUBSan",
16256 Value: val?.ToString(),
16257 Setter: '=',
16258 Meta: new(
16260 AllowMultiple: false
16261 )
16262 ));
16263 }
16264 return (MacTargetRulesConfig) this;
16265 }
16266
16267
16268/// <summary>
16269/// Enables the generation of .dsym files. This can be disabled to enable faster iteration times during development.
16270/// </summary>
16271 public virtual MacTargetRulesConfig NoDSYM(bool present = true)
16272 {
16273 if (present)
16274 {
16275 AppendArgument(new UnrealToolArgument(
16276 "-NoDSYM",
16277 Value: null,
16278 Setter: '=',
16279 Meta: new(
16280 Compatibility: UnrealCompatibility.UE_5_0,
16281 AllowMultiple: false
16282 )
16283 ));
16284 }
16285 return (MacTargetRulesConfig) this;
16286 }
16287
16288
16289/// <summary>Enables the generation of .dsym files. This can be disabled to enable faster iteration times during development.
16290/// Don't generate crashlytics data</summary>
16291 public virtual MacTargetRulesConfig EnableDSYM(bool present = true)
16292 {
16293 if (present)
16294 {
16295 AppendArgument(new UnrealToolArgument(
16296 "-EnableDSYM",
16297 Value: null,
16298 Setter: '=',
16299 Meta: new(
16300 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16301 AllowMultiple: false
16302 )
16303 ));
16304 }
16305 return (MacTargetRulesConfig) this;
16306 }
16307
16308
16309/// <summary>
16310/// Disables clang build verification checks on static libraries
16311/// </summary>
16312 public virtual MacTargetRulesConfig Skipclangvalidation(bool present = true)
16313 {
16314 if (present)
16315 {
16316 AppendArgument(new UnrealToolArgument(
16317 "-skipclangvalidation",
16318 Value: null,
16319 Setter: '=',
16320 Meta: new(
16321 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6,
16322 AllowMultiple: false
16323 )
16324 ));
16325 }
16326 return (MacTargetRulesConfig) this;
16327 }
16328
16329
16330/// <summary>
16331/// Enables LibFuzzer.
16332/// </summary>
16333 public virtual MacTargetRulesConfig EnableLibFuzzer(bool? val = null)
16334 {
16335 if (true)
16336 {
16337 AppendArgument(new UnrealToolArgument(
16338 "-EnableLibFuzzer",
16339 Value: val?.ToString(),
16340 Setter: '=',
16341 Meta: new(
16342 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16343 AllowMultiple: false
16344 )
16345 ));
16346 }
16347 return (MacTargetRulesConfig) this;
16348 }
16349
16350
16351 private ToolConfig[] _configs = null;
16352 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
16353 {
16354 };
16355 }
16356
16357 protected readonly MacTargetRulesConfig MacTargetRulesStorage = new();
16358
16359/// <summary>
16360/// Special mode for gathering all the messages into a single output file
16361/// </summary>
16363 {
16364 public override string Name => "PVSGather";
16365 public override string CliName => "-PVSGather";
16366 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
16367
16368/// <summary>Path to the input file list
16369/// REQUIRED!</summary>
16370 public virtual PVSGatherConfig Input(object val = null)
16371 {
16372 if (true)
16373 {
16374 AppendArgument(new UnrealToolArgument(
16375 "-Input",
16376 Value: val?.ToString(),
16377 Setter: '=',
16378 Meta: new(
16380 AllowMultiple: false
16381 )
16382 ));
16383 }
16384 return (PVSGatherConfig) this;
16385 }
16386
16387
16388/// <summary>Output file to generate
16389/// REQUIRED!</summary>
16390 public virtual PVSGatherConfig Output(object val = null)
16391 {
16392 if (true)
16393 {
16394 AppendArgument(new UnrealToolArgument(
16395 "-Output",
16396 Value: val?.ToString(),
16397 Setter: '=',
16398 Meta: new(
16400 AllowMultiple: false
16401 )
16402 ));
16403 }
16404 return (PVSGatherConfig) this;
16405 }
16406
16407
16408/// <summary>
16409/// The maximum level of warnings to print
16410/// </summary>
16411 public virtual PVSGatherConfig PrintLevel(double? val = null)
16412 {
16413 if (true)
16414 {
16415 AppendArgument(new UnrealToolArgument(
16416 "-PrintLevel",
16417 Value: val?.ToString(),
16418 Setter: '=',
16419 Meta: new(
16420 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16421 AllowMultiple: false
16422 )
16423 ));
16424 }
16425 return (PVSGatherConfig) this;
16426 }
16427
16428
16429/// <summary>
16430/// Version of the analyzers
16431/// </summary>
16432 public virtual PVSGatherConfig AnalyzerVersion(object val = null)
16433 {
16434 if (true)
16435 {
16436 AppendArgument(new UnrealToolArgument(
16437 "-AnalyzerVersion",
16438 Value: val?.ToString(),
16439 Setter: '=',
16440 Meta: new(
16441 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5,
16442 AllowMultiple: false
16443 )
16444 ));
16445 }
16446 return (PVSGatherConfig) this;
16447 }
16448
16449
16450/// <summary>Path to file list of paths to ignore
16451/// REQUIRED!</summary>
16452 public virtual PVSGatherConfig Ignored(object val = null)
16453 {
16454 if (true)
16455 {
16456 AppendArgument(new UnrealToolArgument(
16457 "-Ignored",
16458 Value: val?.ToString(),
16459 Setter: '=',
16460 Meta: new(
16461 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16462 AllowMultiple: false
16463 )
16464 ));
16465 }
16466 return (PVSGatherConfig) this;
16467 }
16468
16469
16470/// <summary>Path to file list of rootpaths,realpath mapping
16471/// REQUIRED!</summary>
16472 public virtual PVSGatherConfig RootPaths(object val = null)
16473 {
16474 if (true)
16475 {
16476 AppendArgument(new UnrealToolArgument(
16477 "-RootPaths",
16478 Value: val?.ToString(),
16479 Setter: '=',
16480 Meta: new(
16481 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16482 AllowMultiple: false
16483 )
16484 ));
16485 }
16486 return (PVSGatherConfig) this;
16487 }
16488
16489
16490 private ToolConfig[] _configs = null;
16491 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
16492 {
16493 };
16494 }
16495
16496 protected readonly PVSGatherConfig PVSGatherStorage = new();
16497
16498/// <summary>
16499/// Windows-specific target settings
16500/// </summary>
16502 {
16503 public override string Name => "WindowsTargetRules";
16504 public override string CliName => "";
16505 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
16506
16507/// <summary>
16508/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.
16509/// </summary>
16510 public virtual WindowsTargetRulesConfig _2015(bool present = true)
16511 {
16512 if (present)
16513 {
16514 AppendArgument(new UnrealToolArgument(
16515 "-2015",
16516 Value: null,
16517 Setter: '=',
16518 Meta: new(
16519 Compatibility: UnrealCompatibility.UE_4,
16520 AllowMultiple: false
16521 )
16522 ));
16523 }
16524 return (WindowsTargetRulesConfig) this;
16525 }
16526
16527
16528/// <summary>
16529/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.
16530/// </summary>
16531 public virtual WindowsTargetRulesConfig _2017(bool present = true)
16532 {
16533 if (present)
16534 {
16535 AppendArgument(new UnrealToolArgument(
16536 "-2017",
16537 Value: null,
16538 Setter: '=',
16539 Meta: new(
16540 Compatibility: UnrealCompatibility.UE_4,
16541 AllowMultiple: false
16542 )
16543 ));
16544 }
16545 return (WindowsTargetRulesConfig) this;
16546 }
16547
16548
16549/// <summary>
16550/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.
16551/// </summary>
16552 public virtual WindowsTargetRulesConfig _2019(bool present = true)
16553 {
16554 if (present)
16555 {
16556 AppendArgument(new UnrealToolArgument(
16557 "-2019",
16558 Value: null,
16559 Setter: '=',
16560 Meta: new(
16561 Compatibility: UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3,
16562 AllowMultiple: false
16563 )
16564 ));
16565 }
16566 return (WindowsTargetRulesConfig) this;
16567 }
16568
16569
16570/// <summary>
16571/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.
16572/// </summary>
16574 {
16575 if (true)
16576 {
16577 AppendArgument(new UnrealToolArgument(
16578 "-2022",
16579 Value: val?.ToString(),
16580 Setter: '=',
16581 Meta: new(
16583 AllowMultiple: false
16584 )
16585 ));
16586 }
16587 return (WindowsTargetRulesConfig) this;
16588 }
16589
16590
16591/// <summary>
16592/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.
16593/// </summary>
16595 {
16596 if (true)
16597 {
16598 AppendArgument(new UnrealToolArgument(
16599 "-Compiler",
16600 Value: val?.ToString(),
16601 Setter: '=',
16602 Meta: new(
16604 AllowMultiple: false
16605 )
16606 ));
16607 }
16608 return (WindowsTargetRulesConfig) this;
16609 }
16610
16611
16612/// <summary>The specific toolchain version to use. This may be a specific version number (for example, "14.13.26128"), the string "Latest" to select the newest available version, or
16613/// the string "Preview" to select the newest available preview version. By default, and if it is available, we use the toolchain version indicated by
16614/// WindowsPlatform.DefaultToolChainVersion (otherwise, we use the latest version).
16615/// The specific compiler version to use. This may be a specific version number (for example, "14.13.26128"), the string "Latest" to select the newest available version, or
16616/// the string "Preview" to select the newest available preview version. By default, and if it is available, we use the toolchain version indicated by
16617/// WindowsPlatform.DefaultToolChainVersion (otherwise, we use the latest version).</summary>
16618 public virtual WindowsTargetRulesConfig CompilerVersion(object val = null)
16619 {
16620 if (true)
16621 {
16622 AppendArgument(new UnrealToolArgument(
16623 "-CompilerVersion",
16624 Value: val?.ToString(),
16625 Setter: '=',
16626 Meta: new(
16628 AllowMultiple: false
16629 )
16630 ));
16631 }
16632 return (WindowsTargetRulesConfig) this;
16633 }
16634
16635
16636/// <summary>The static analyzer to use.
16637/// Whether static code analysis should be enabled.</summary>
16639 {
16640 if (true)
16641 {
16642 AppendArgument(new UnrealToolArgument(
16643 "-StaticAnalyzer",
16644 Value: val?.ToString(),
16645 Setter: '=',
16646 Meta: new(
16648 AllowMultiple: false
16649 )
16650 ));
16651 }
16652 return (WindowsTargetRulesConfig) this;
16653 }
16654
16655
16656/// <summary>
16657/// Whether we should export a file containing .obj to source file mappings.
16658/// </summary>
16659 public virtual WindowsTargetRulesConfig ObjSrcMap(object val = null)
16660 {
16661 if (true)
16662 {
16663 AppendArgument(new UnrealToolArgument(
16664 "-ObjSrcMap",
16665 Value: val?.ToString(),
16666 Setter: '=',
16667 Meta: new(
16669 AllowMultiple: false
16670 )
16671 ));
16672 }
16673 return (WindowsTargetRulesConfig) this;
16674 }
16675
16676
16677/// <summary>Enables strict standard conformance mode (/permissive-) in VS2017+.
16678/// Enables strict standard conformance mode (/permissive-).</summary>
16679 public virtual WindowsTargetRulesConfig Strict(bool? val = null)
16680 {
16681 if (true)
16682 {
16683 AppendArgument(new UnrealToolArgument(
16684 "-Strict",
16685 Value: val?.ToString(),
16686 Setter: '=',
16687 Meta: new(
16689 AllowMultiple: false
16690 )
16691 ));
16692 }
16693 return (WindowsTargetRulesConfig) this;
16694 }
16695
16696
16697/// <summary>
16698/// Print out files that are included by each source file
16699/// </summary>
16700 public virtual WindowsTargetRulesConfig ShowIncludes(bool? val = null)
16701 {
16702 if (true)
16703 {
16704 AppendArgument(new UnrealToolArgument(
16705 "-ShowIncludes",
16706 Value: val?.ToString(),
16707 Setter: '=',
16708 Meta: new(
16710 AllowMultiple: false
16711 )
16712 ));
16713 }
16714 return (WindowsTargetRulesConfig) this;
16715 }
16716
16717
16718/// <summary>The output type to use for the static analyzer.
16719/// The output type to use for the static analyzer. This is only supported for Clang.</summary>
16721 {
16722 if (true)
16723 {
16724 AppendArgument(new UnrealToolArgument(
16725 "-StaticAnalyzerOutputType",
16726 Value: val?.ToString(),
16727 Setter: '=',
16728 Meta: new(
16729 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16730 AllowMultiple: false
16731 )
16732 ));
16733 }
16734 return (WindowsTargetRulesConfig) this;
16735 }
16736
16737
16738/// <summary>
16739/// Enables address sanitizer (ASan). Only supported for Visual Studio 2019 16.7.0 and up.
16740/// </summary>
16741 public virtual WindowsTargetRulesConfig EnableASan(bool? val = null)
16742 {
16743 if (true)
16744 {
16745 AppendArgument(new UnrealToolArgument(
16746 "-EnableASan",
16747 Value: val?.ToString(),
16748 Setter: '=',
16749 Meta: new(
16750 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16751 AllowMultiple: false
16752 )
16753 ));
16754 }
16755 return (WindowsTargetRulesConfig) this;
16756 }
16757
16758
16759/// <summary>Set flags require for determinstic compiles (experimental)
16760/// Force set flags require for determinstic compiling and linking (experimental, may not be fully supported).
16761/// This setting is only recommended for testing, instead:
16762/// * Set bDeterministic on a per module basis in ModuleRules to control deterministic compiling.
16763/// * Set bDeterministic on a per target basis in TargetRules to control deterministic linking.
16764/// Set flags require for deterministic compiling and linking.
16765/// Enabling deterministic mode for msvc disables codegen multithreading so compiling will be slower</summary>
16766 public virtual WindowsTargetRulesConfig Deterministic(bool? val = null)
16767 {
16768 if (true)
16769 {
16770 AppendArgument(new UnrealToolArgument(
16771 "-Deterministic",
16772 Value: val?.ToString(),
16773 Setter: '=',
16774 Meta: new(
16775 Compatibility: UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16776 AllowMultiple: false
16777 )
16778 ));
16779 }
16780 return (WindowsTargetRulesConfig) this;
16781 }
16782
16783
16784/// <summary>
16785/// Enables updated __cplusplus macro (/Zc:__cplusplus).
16786/// </summary>
16787 public virtual WindowsTargetRulesConfig UpdatedCPPMacro(bool? val = null)
16788 {
16789 if (true)
16790 {
16791 AppendArgument(new UnrealToolArgument(
16792 "-UpdatedCPPMacro",
16793 Value: val?.ToString(),
16794 Setter: '=',
16795 Meta: new(
16796 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16797 AllowMultiple: false
16798 )
16799 ));
16800 }
16801 return (WindowsTargetRulesConfig) this;
16802 }
16803
16804
16805/// <summary>
16806/// Enables inline conformance (Remove unreferenced COMDAT) (/Zc:inline).
16807/// </summary>
16808 public virtual WindowsTargetRulesConfig StrictInline(bool? val = null)
16809 {
16810 if (true)
16811 {
16812 AppendArgument(new UnrealToolArgument(
16813 "-StrictInline",
16814 Value: val?.ToString(),
16815 Setter: '=',
16816 Meta: new(
16817 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16818 AllowMultiple: false
16819 )
16820 ));
16821 }
16822 return (WindowsTargetRulesConfig) this;
16823 }
16824
16825
16826/// <summary>Enables new preprocessor conformance (/Zc:preprocessor).
16827/// Enables new preprocessor conformance (/Zc:preprocessor). This is always enabled for C++20 modules.</summary>
16828 public virtual WindowsTargetRulesConfig StrictPreprocessor(bool? val = null)
16829 {
16830 if (true)
16831 {
16832 AppendArgument(new UnrealToolArgument(
16833 "-StrictPreprocessor",
16834 Value: val?.ToString(),
16835 Setter: '=',
16836 Meta: new(
16837 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16838 AllowMultiple: false
16839 )
16840 ));
16841 }
16842 return (WindowsTargetRulesConfig) this;
16843 }
16844
16845
16846/// <summary>
16847/// Enables enum types conformance (/Zc:enumTypes) in VS2022 17.4 Preview 4.0+.
16848/// </summary>
16849 public virtual WindowsTargetRulesConfig StrictEnumTypes(bool? val = null)
16850 {
16851 if (true)
16852 {
16853 AppendArgument(new UnrealToolArgument(
16854 "-StrictEnumTypes",
16855 Value: val?.ToString(),
16856 Setter: '=',
16857 Meta: new(
16858 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16859 AllowMultiple: false
16860 )
16861 ));
16862 }
16863 return (WindowsTargetRulesConfig) this;
16864 }
16865
16866
16867/// <summary>True if we should use the Clang linker (LLD) when we are compiling with Clang, or Intel linker (xilink\xilib) when we are compiling with Intel oneAPI, otherwise we use the MSVC linker.
16868/// True if we should use the Clang linker (LLD) when we are compiling with Clang or Intel oneAPI, otherwise we use the MSVC linker.</summary>
16869 public virtual WindowsTargetRulesConfig ClangLinker(bool? val = null)
16870 {
16871 if (true)
16872 {
16873 AppendArgument(new UnrealToolArgument(
16874 "-ClangLinker",
16875 Value: val?.ToString(),
16876 Setter: '=',
16877 Meta: new(
16878 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16879 AllowMultiple: false
16880 )
16881 ));
16882 }
16883 return (WindowsTargetRulesConfig) this;
16884 }
16885
16886
16887/// <summary>If specified along with -PGOProfile, then /FASTGENPROFILE will be used instead of /GENPROFILE.
16888/// This usually means that the PGO data is generated faster, but the resulting data may not yield as efficient optimizations during -PGOOptimize
16889/// If specified along with -PGOProfile, then /FASTGENPROFILE will be used instead of /GENPROFILE. This usually means that the PGO data is generated faster, but the resulting data may not yield as efficient optimizations during -PGOOptimize</summary>
16890 public virtual WindowsTargetRulesConfig PGOFastGen(bool? val = null)
16891 {
16892 if (true)
16893 {
16894 AppendArgument(new UnrealToolArgument(
16895 "-PGOFastGen",
16896 Value: val?.ToString(),
16897 Setter: '=',
16898 Meta: new(
16899 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16900 AllowMultiple: false
16901 )
16902 ));
16903 }
16904 return (WindowsTargetRulesConfig) this;
16905 }
16906
16907
16908/// <summary>
16909/// Version of the toolchain to use on Windows platform when a non-msvc Compiler is in use, to locate include paths etc.
16910/// </summary>
16912 {
16913 if (true)
16914 {
16915 AppendArgument(new UnrealToolArgument(
16916 "-VCToolchain",
16917 Value: val?.ToString(),
16918 Setter: '=',
16919 Meta: new(
16920 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16921 AllowMultiple: false
16922 )
16923 ));
16924 }
16925 return (WindowsTargetRulesConfig) this;
16926 }
16927
16928
16929/// <summary>
16930/// If -PGOOptimize is specified but the linker flags have changed since the last -PGOProfile, this will emit a warning and build without PGO instead of failing during link with LNK1268.
16931/// </summary>
16932 public virtual WindowsTargetRulesConfig IgnoreStalePGOData(bool? val = null)
16933 {
16934 if (true)
16935 {
16936 AppendArgument(new UnrealToolArgument(
16937 "-IgnoreStalePGOData",
16938 Value: val?.ToString(),
16939 Setter: '=',
16940 Meta: new(
16941 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16942 AllowMultiple: false
16943 )
16944 ));
16945 }
16946 return (WindowsTargetRulesConfig) this;
16947 }
16948
16949
16950/// <summary>
16951/// If specified along with -PGOProfile, prevent the usage of extra counters. Please note that by default /FASTGENPROFILE doesnt use extra counters
16952/// </summary>
16953/// <seealso href="link">https://learn.microsoft.com/en-us/cpp/build/reference/genprofile-fastgenprofile-generate-profiling-instrumented-build</seealso>
16954 public virtual WindowsTargetRulesConfig PGONoExtraCounters(bool? val = null)
16955 {
16956 if (true)
16957 {
16958 AppendArgument(new UnrealToolArgument(
16959 "-PGONoExtraCounters",
16960 Value: val?.ToString(),
16961 Setter: '=',
16962 Meta: new(
16963 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16964 AllowMultiple: false
16965 )
16966 ));
16967 }
16968 return (WindowsTargetRulesConfig) this;
16969 }
16970
16971
16972/// <summary>
16973/// The specific msvc toolchain version to use if the compiler is not msvc. This may be a specific version number (for example, "14.13.26128"), the string "Latest" to select the newest available version, or
16974/// the string "Preview" to select the newest available preview version. By default, and if it is available, we use the toolchain version indicated by
16975/// WindowsPlatform.DefaultToolChainVersion (otherwise, we use the latest version).
16976/// </summary>
16977 public virtual WindowsTargetRulesConfig VCToolchainVersion(object val = null)
16978 {
16979 if (true)
16980 {
16981 AppendArgument(new UnrealToolArgument(
16982 "-VCToolchainVersion",
16983 Value: val?.ToString(),
16984 Setter: '=',
16985 Meta: new(
16986 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
16987 AllowMultiple: false
16988 )
16989 ));
16990 }
16991 return (WindowsTargetRulesConfig) this;
16992 }
16993
16994
16995/// <summary>
16996/// True if /fastfail should be passed to the msvc compiler and linker
16997/// </summary>
16998 public virtual WindowsTargetRulesConfig VCFastFail(bool? val = null)
16999 {
17000 if (true)
17001 {
17002 AppendArgument(new UnrealToolArgument(
17003 "-VCFastFail",
17004 Value: val?.ToString(),
17005 Setter: '=',
17006 Meta: new(
17007 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17008 AllowMultiple: false
17009 )
17010 ));
17011 }
17012 return (WindowsTargetRulesConfig) this;
17013 }
17014
17015
17016/// <summary>
17017/// The specific Windows SDK version to use. This may be a specific version number (for example, "8.1", "10.0" or "10.0.10150.0"), or the string "Latest", to select the newest available version.
17018/// By default, and if it is available, we use the Windows SDK version indicated by WindowsPlatform.DefaultWindowsSdkVersion (otherwise, we use the latest version).
17019/// </summary>
17020 public virtual WindowsTargetRulesConfig WindowsSDKVersion(object val = null)
17021 {
17022 if (true)
17023 {
17024 AppendArgument(new UnrealToolArgument(
17025 "-WindowsSDKVersion",
17026 Value: val?.ToString(),
17027 Setter: '=',
17028 Meta: new(
17029 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17030 AllowMultiple: false
17031 )
17032 ));
17033 }
17034 return (WindowsTargetRulesConfig) this;
17035 }
17036
17037
17038/// <summary>
17039/// Enables LibFuzzer. Only supported for Visual Studio 2022 17.0.0 and up.
17040/// </summary>
17041 public virtual WindowsTargetRulesConfig EnableLibFuzzer(bool? val = null)
17042 {
17043 if (true)
17044 {
17045 AppendArgument(new UnrealToolArgument(
17046 "-EnableLibFuzzer",
17047 Value: val?.ToString(),
17048 Setter: '=',
17049 Meta: new(
17050 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17051 AllowMultiple: false
17052 )
17053 ));
17054 }
17055 return (WindowsTargetRulesConfig) this;
17056 }
17057
17058
17059/// <summary>
17060/// Whether .sarif files containing errors and warnings are written alongside each .obj, if supported
17061/// </summary>
17062 public virtual WindowsTargetRulesConfig Sarif(bool? val = null)
17063 {
17064 if (true)
17065 {
17066 AppendArgument(new UnrealToolArgument(
17067 "-Sarif",
17068 Value: val?.ToString(),
17069 Setter: '=',
17070 Meta: new(
17071 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4,
17072 AllowMultiple: false
17073 )
17074 ));
17075 }
17076 return (WindowsTargetRulesConfig) this;
17077 }
17078
17079
17080/// <summary>
17081/// Specify an alternate location for the PDB file. This option does not change the location of the generated PDB file,
17082/// it changes the name that is embedded into the executable. Path can contain %_PDB% which will be expanded to the original
17083/// PDB file name of the target, without the directory.
17084/// See https://learn.microsoft.com/en-us/cpp/build/reference/pdbaltpath-use-alternate-pdb-path
17085/// </summary>
17086 public virtual WindowsTargetRulesConfig PdbAltPath(object val = null)
17087 {
17088 if (true)
17089 {
17090 AppendArgument(new UnrealToolArgument(
17091 "-PdbAltPath",
17092 Value: val?.ToString(),
17093 Setter: '=',
17094 Meta: new(
17095 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17096 AllowMultiple: false
17097 )
17098 ));
17099 }
17100 return (WindowsTargetRulesConfig) this;
17101 }
17102
17103
17104/// <summary>
17105/// If enabled will set the ProductVersion embeded in windows executables and dlls to contain BUILT_FROM_CHANGELIST and BuildVersion
17106/// Enabled by default for all precompiled and Shipping configurations. Regardless of this setting, the versions from Build.version will be available via the BuildSettings module
17107/// Note: Embedding these versions will cause resource files to be recompiled whenever changelist is updated which will cause binaries to relink
17108/// </summary>
17109 public virtual WindowsTargetRulesConfig SetResourceVersions(bool? val = null)
17110 {
17111 if (true)
17112 {
17113 AppendArgument(new UnrealToolArgument(
17114 "-SetResourceVersions",
17115 Value: val?.ToString(),
17116 Setter: '=',
17117 Meta: new(
17118 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17119 AllowMultiple: false
17120 )
17121 ));
17122 }
17123 return (WindowsTargetRulesConfig) this;
17124 }
17125
17126
17127/// <summary>
17128/// If enabled will set the ProductVersion embeded in windows executables and dlls to contain BUILT_FROM_CHANGELIST and BuildVersion
17129/// Enabled by default for all precompiled and Shipping configurations. Regardless of this setting, the versions from Build.version will be available via the BuildSettings module
17130/// Note: Embedding these versions will cause resource files to be recompiled whenever changelist is updated which will cause binaries to relink
17131/// </summary>
17132 public virtual WindowsTargetRulesConfig NoSetResourceVersions(bool present = true)
17133 {
17134 if (present)
17135 {
17136 AppendArgument(new UnrealToolArgument(
17137 "-NoSetResourceVersions",
17138 Value: null,
17139 Setter: '=',
17140 Meta: new(
17141 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17142 AllowMultiple: false
17143 )
17144 ));
17145 }
17146 return (WindowsTargetRulesConfig) this;
17147 }
17148
17149
17150/// <summary>
17151/// Warning level when reporting toolchains that are not in the preferred version list
17152/// </summary>
17153/// <seealso cref="MicrosoftPlatformSDK.PreferredVisualCppVersions" />
17155 {
17156 if (true)
17157 {
17158 AppendArgument(new UnrealToolArgument(
17159 "-ToolchainVersionWarningLevel",
17160 Value: val?.ToString(),
17161 Setter: '=',
17162 Meta: new(
17163 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17164 AllowMultiple: false
17165 )
17166 ));
17167 }
17168 return (WindowsTargetRulesConfig) this;
17169 }
17170
17171
17172/// <summary>
17173/// If specified along with -PGOProfile, use sample-based PGO instead of instrumented. Currently Intel oneAPI 2024.0+ only.
17174/// </summary>
17175 public virtual WindowsTargetRulesConfig SampleBasedPGO(bool? val = null)
17176 {
17177 if (true)
17178 {
17179 AppendArgument(new UnrealToolArgument(
17180 "-SampleBasedPGO",
17181 Value: val?.ToString(),
17182 Setter: '=',
17183 Meta: new(
17184 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17185 AllowMultiple: false
17186 )
17187 ));
17188 }
17189 return (WindowsTargetRulesConfig) this;
17190 }
17191
17192
17193/// <summary>
17194/// True if /d2ExtendedWarningInfo should be passed to the compiler and /d2:-ExtendedWarningInfo to the linker
17195/// </summary>
17196 public virtual WindowsTargetRulesConfig VCExtendedWarningInfo(bool? val = null)
17197 {
17198 if (true)
17199 {
17200 AppendArgument(new UnrealToolArgument(
17201 "-VCExtendedWarningInfo",
17202 Value: val?.ToString(),
17203 Setter: '=',
17204 Meta: new(
17205 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17206 AllowMultiple: false
17207 )
17208 ));
17209 }
17210 return (WindowsTargetRulesConfig) this;
17211 }
17212
17213
17214/// <summary>
17215/// True if /d2ExtendedWarningInfo should be passed to the compiler and /d2:-ExtendedWarningInfo to the linker
17216/// </summary>
17217 public virtual WindowsTargetRulesConfig VCDisableExtendedWarningInfo(bool present = true)
17218 {
17219 if (present)
17220 {
17221 AppendArgument(new UnrealToolArgument(
17222 "-VCDisableExtendedWarningInfo",
17223 Value: null,
17224 Setter: '=',
17225 Meta: new(
17226 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17227 AllowMultiple: false
17228 )
17229 ));
17230 }
17231 return (WindowsTargetRulesConfig) this;
17232 }
17233
17234
17235/// <summary>True if optimizations to reduce the size of debug information should be disabled
17236/// See https://clang.llvm.org/docs/UsersManual.html#cmdoption-fstandalone-debug for more information
17237/// True if optimizations to reduce the size of debug information should be disabled. Disabling this option can decrease pdb size but may degrade the debugging experience.
17238/// See https://clang.llvm.org/docs/UsersManual.html#cmdoption-fstandalone-debug for more information</summary>
17239 public virtual WindowsTargetRulesConfig ClangStandaloneDebug(bool? val = null)
17240 {
17241 if (true)
17242 {
17243 AppendArgument(new UnrealToolArgument(
17244 "-ClangStandaloneDebug",
17245 Value: val?.ToString(),
17246 Setter: '=',
17247 Meta: new(
17248 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17249 AllowMultiple: false
17250 )
17251 ));
17252 }
17253 return (WindowsTargetRulesConfig) this;
17254 }
17255
17256
17257/// <summary>
17258/// Whether to have the linker or library tool to generate a link repro in the specified directory
17259/// See https://learn.microsoft.com/en-us/cpp/build/reference/linkrepro for more information
17260/// </summary>
17261 public virtual WindowsTargetRulesConfig LinkRepro(object val = null)
17262 {
17263 if (true)
17264 {
17265 AppendArgument(new UnrealToolArgument(
17266 "-LinkRepro",
17267 Value: val?.ToString(),
17268 Setter: '=',
17269 Meta: new(
17270 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17271 AllowMultiple: false
17272 )
17273 ));
17274 }
17275 return (WindowsTargetRulesConfig) this;
17276 }
17277
17278
17279/// <summary>
17280/// Whether to request the linker create a stripped pdb file as part of the build.
17281/// If enabled the full debug pdb will have the extension .full.pdb
17282/// </summary>
17283 public virtual WindowsTargetRulesConfig StripPrivateSymbols(bool? val = null)
17284 {
17285 if (true)
17286 {
17287 AppendArgument(new UnrealToolArgument(
17288 "-StripPrivateSymbols",
17289 Value: val?.ToString(),
17290 Setter: '=',
17291 Meta: new(
17292 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17293 AllowMultiple: false
17294 )
17295 ));
17296 }
17297 return (WindowsTargetRulesConfig) this;
17298 }
17299
17300
17301/// <summary>
17302/// Whether this build will use Microsoft's custom XCurl instead of libcurl
17303/// Note that XCurl is not part of the normal Windows SDK and will require additional downloads
17304/// </summary>
17305 public virtual WindowsTargetRulesConfig UseXCurl(bool? val = null)
17306 {
17307 if (true)
17308 {
17309 AppendArgument(new UnrealToolArgument(
17310 "-UseXCurl",
17311 Value: val?.ToString(),
17312 Setter: '=',
17313 Meta: new(
17314 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17315 AllowMultiple: false
17316 )
17317 ));
17318 }
17319 return (WindowsTargetRulesConfig) this;
17320 }
17321
17322
17323/// <summary>
17324/// Volatile Metadata is enabled by default and improves x64 emulation on arm64, but may come at a small perfomance cost (/volatileMetadata-).
17325/// </summary>
17326 public virtual WindowsTargetRulesConfig DisableVolatileMetadata(bool? val = null)
17327 {
17328 if (true)
17329 {
17330 AppendArgument(new UnrealToolArgument(
17331 "-DisableVolatileMetadata",
17332 Value: val?.ToString(),
17333 Setter: '=',
17334 Meta: new(
17335 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17336 AllowMultiple: false
17337 )
17338 ));
17339 }
17340 return (WindowsTargetRulesConfig) this;
17341 }
17342
17343
17344/// <summary>
17345/// If specified along with -PGOOptimize, will use the specified per-merged pgd file instead of the usual pgd file with loose pgc files.
17346/// </summary>
17347 public virtual WindowsTargetRulesConfig PGOMergedPGD(object val = null)
17348 {
17349 if (true)
17350 {
17351 AppendArgument(new UnrealToolArgument(
17352 "-PGOMergedPGD",
17353 Value: val?.ToString(),
17354 Setter: '=',
17355 Meta: new(
17356 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17357 AllowMultiple: false
17358 )
17359 ));
17360 }
17361 return (WindowsTargetRulesConfig) this;
17362 }
17363
17364
17365/// <summary>
17366/// True if we should use the Clang linker (LLD) when we are compiling with Clang or Intel oneAPI, otherwise we use the MSVC linker.
17367/// </summary>
17368 public virtual WindowsTargetRulesConfig NoClangLinker(bool present = true)
17369 {
17370 if (present)
17371 {
17372 AppendArgument(new UnrealToolArgument(
17373 "-NoClangLinker",
17374 Value: null,
17375 Setter: '=',
17376 Meta: new(
17377 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17378 AllowMultiple: false
17379 )
17380 ));
17381 }
17382 return (WindowsTargetRulesConfig) this;
17383 }
17384
17385
17386/// <summary>
17387/// Enables enforcing standard C++ ODR violations (/Zc:checkGwOdr) in VS2022 17.5 Preview 2.0+
17388/// </summary>
17389 public virtual WindowsTargetRulesConfig StrictODR(bool? val = null)
17390 {
17391 if (true)
17392 {
17393 AppendArgument(new UnrealToolArgument(
17394 "-StrictODR",
17395 Value: val?.ToString(),
17396 Setter: '=',
17397 Meta: new(
17398 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17399 AllowMultiple: false
17400 )
17401 ));
17402 }
17403 return (WindowsTargetRulesConfig) this;
17404 }
17405
17406
17407/// <summary>
17408/// If you supply -NoDebugInfo, windows platforms still create debug info while linking. Set this to true to not create debug info while linking in this circumstance
17409/// </summary>
17410 public virtual WindowsTargetRulesConfig NoLinkerDebugInfo(bool? val = null)
17411 {
17412 if (true)
17413 {
17414 AppendArgument(new UnrealToolArgument(
17415 "-NoLinkerDebugInfo",
17416 Value: val?.ToString(),
17417 Setter: '=',
17418 Meta: new(
17419 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17420 AllowMultiple: false
17421 )
17422 ));
17423 }
17424 return (WindowsTargetRulesConfig) this;
17425 }
17426
17427
17428/// <summary>
17429/// If specificed Visual Studio Dynamic Debugging support will be enabled, unless the compiler or linker is not MSVC or LTCG is enabled
17430/// </summary>
17431 public virtual WindowsTargetRulesConfig DynamicDebugging(bool? val = null)
17432 {
17433 if (true)
17434 {
17435 AppendArgument(new UnrealToolArgument(
17436 "-DynamicDebugging",
17437 Value: val?.ToString(),
17438 Setter: '=',
17439 Meta: new(
17440 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17441 AllowMultiple: false
17442 )
17443 ));
17444 }
17445 return (WindowsTargetRulesConfig) this;
17446 }
17447
17448
17449/// <summary>
17450/// True if we should use the Rad linker
17451/// </summary>
17452 public virtual WindowsTargetRulesConfig RadLinker(bool? val = null)
17453 {
17454 if (true)
17455 {
17456 AppendArgument(new UnrealToolArgument(
17457 "-RadLinker",
17458 Value: val?.ToString(),
17459 Setter: '=',
17460 Meta: new(
17461 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17462 AllowMultiple: false
17463 )
17464 ));
17465 }
17466 return (WindowsTargetRulesConfig) this;
17467 }
17468
17469
17470/// <summary>
17471/// Enables undefined behavior sanitizer (UBSan)
17472/// </summary>
17473 public virtual WindowsTargetRulesConfig EnableUBSan(bool? val = null)
17474 {
17475 if (true)
17476 {
17477 AppendArgument(new UnrealToolArgument(
17478 "-EnableUBSan",
17479 Value: val?.ToString(),
17480 Setter: '=',
17481 Meta: new(
17482 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17483 AllowMultiple: false
17484 )
17485 ));
17486 }
17487 return (WindowsTargetRulesConfig) this;
17488 }
17489
17490
17491/// <summary>
17492/// Enables instrumentation.
17493/// </summary>
17494 public virtual WindowsTargetRulesConfig EnableInstrumentation(bool? val = null)
17495 {
17496 if (true)
17497 {
17498 AppendArgument(new UnrealToolArgument(
17499 "-EnableInstrumentation",
17500 Value: val?.ToString(),
17501 Setter: '=',
17502 Meta: new(
17503 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17504 AllowMultiple: false
17505 )
17506 ));
17507 }
17508 return (WindowsTargetRulesConfig) this;
17509 }
17510
17511
17512/// <summary>
17513/// Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to a specific version at UBT start up.
17514/// </summary>
17516 {
17517 if (true)
17518 {
17519 AppendArgument(new UnrealToolArgument(
17520 "-2026",
17521 Value: val?.ToString(),
17522 Setter: '=',
17523 Meta: new(
17524 Compatibility: UnrealCompatibility.UE_5_Latest,
17525 AllowMultiple: false
17526 )
17527 ));
17528 }
17529 return (WindowsTargetRulesConfig) this;
17530 }
17531
17532
17533/// <summary>
17534/// True if optimizations to reduce the size of debug information should be disabled. Disabling this option can decrease pdb size but may degrade the debugging experience.
17535/// See https://clang.llvm.org/docs/UsersManual.html#cmdoption-fstandalone-debug for more information
17536/// </summary>
17537 public virtual WindowsTargetRulesConfig NoClangStandaloneDebug(bool present = true)
17538 {
17539 if (present)
17540 {
17541 AppendArgument(new UnrealToolArgument(
17542 "-NoClangStandaloneDebug",
17543 Value: null,
17544 Setter: '=',
17545 Meta: new(
17546 Compatibility: UnrealCompatibility.UE_5_Latest,
17547 AllowMultiple: false
17548 )
17549 ));
17550 }
17551 return (WindowsTargetRulesConfig) this;
17552 }
17553
17554
17555 private ToolConfig[] _configs = null;
17556 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
17557 {
17558 };
17559 }
17560
17561 protected readonly WindowsTargetRulesConfig WindowsTargetRulesStorage = new();
17562
17563/// <summary></summary>
17565 {
17566 public override string Name => "RiderProjectFileGenerator";
17567 public override string CliName => "";
17568 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_4 | UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
17569
17570/// <summary>
17571/// Platforms to generate project files for
17572/// </summary>
17573 public virtual RiderProjectFileGeneratorConfig Platforms(params object[] values)
17574 {
17575 if (true)
17576 {
17577 AppendArgument(new UnrealToolArgument(
17578 "-Platforms",
17579 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
17580 Setter: '=',
17581 Meta: new(
17583 AllowMultiple: true
17584 )
17585 ));
17586 }
17587 return (RiderProjectFileGeneratorConfig) this;
17588 }
17589
17590
17591/// <summary>
17592/// Target types to generate project files for
17593/// </summary>
17595 {
17596 if (true)
17597 {
17598 AppendArgument(new UnrealToolArgument(
17599 "-TargetTypes",
17600 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
17601 Setter: '=',
17602 Meta: new(
17604 AllowMultiple: true
17605 )
17606 ));
17607 }
17608 return (RiderProjectFileGeneratorConfig) this;
17609 }
17610
17611
17612/// <summary>
17613/// Target configurations to generate project files for
17614/// </summary>
17616 {
17617 if (true)
17618 {
17619 AppendArgument(new UnrealToolArgument(
17620 "-TargetConfigurations",
17621 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
17622 Setter: '=',
17623 Meta: new(
17625 AllowMultiple: true
17626 )
17627 ));
17628 }
17629 return (RiderProjectFileGeneratorConfig) this;
17630 }
17631
17632
17633/// <summary>
17634/// Projects to generate project files for
17635/// </summary>
17636 public virtual RiderProjectFileGeneratorConfig ProjectNames(params object[] values)
17637 {
17638 if (true)
17639 {
17640 AppendArgument(new UnrealToolArgument(
17641 "-ProjectNames",
17642 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
17643 Setter: '=',
17644 Meta: new(
17646 AllowMultiple: true
17647 )
17648 ));
17649 }
17650 return (RiderProjectFileGeneratorConfig) this;
17651 }
17652
17653
17654/// <summary>
17655/// Should format JSON files in human readable form, or use packed one without indents
17656/// </summary>
17657 public virtual RiderProjectFileGeneratorConfig Minimize(bool present = true)
17658 {
17659 if (present)
17660 {
17661 AppendArgument(new UnrealToolArgument(
17662 "-Minimize",
17663 Value: null,
17664 Setter: '=',
17665 Meta: new(
17667 AllowMultiple: false
17668 )
17669 ));
17670 }
17671 return (RiderProjectFileGeneratorConfig) this;
17672 }
17673
17674
17675/// <summary>
17676/// When specified only primary project file (root.json) will be generated.
17677/// Normally project files for specific configurations are generated together with primary project file.
17678/// </summary>
17680 {
17681 if (true)
17682 {
17683 AppendArgument(new UnrealToolArgument(
17684 "-OnlyPrimaryProjectFile",
17685 Value: val?.ToString(),
17686 Setter: '=',
17687 Meta: new(
17688 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17689 AllowMultiple: false
17690 )
17691 ));
17692 }
17693 return (RiderProjectFileGeneratorConfig) this;
17694 }
17695
17696
17697 private ToolConfig[] _configs = null;
17698 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
17699 {
17700 };
17701 }
17702
17703 protected readonly RiderProjectFileGeneratorConfig RiderProjectFileGeneratorStorage = new();
17704
17705/// <summary>
17706/// Outputs information about the given target, including a module dependecy graph (in .gefx format and list of module references)
17707/// </summary>
17709 {
17710 public override string Name => "Analyze";
17711 public override string CliName => "-Analyze";
17712 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_0 | UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
17713
17714 private ToolConfig[] _configs = null;
17715 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
17716 {
17717 };
17718 }
17719
17720 protected readonly AnalyzeConfig AnalyzeStorage = new();
17721
17722/// <summary>
17723/// Aggregates clang timing information files together into one monolithic breakdown file.
17724/// </summary>
17726 {
17727 public override string Name => "AggregateClangTimingInfo";
17728 public override string CliName => "-AggregateClangTimingInfo";
17729 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
17730
17731 private ToolConfig[] _configs = null;
17732 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
17733 {
17734 };
17735 }
17736
17737 protected readonly AggregateClangTimingInfoConfig AggregateClangTimingInfoStorage = new();
17738
17739/// <summary>
17740/// Fixes the include paths found in a header and source file
17741/// </summary>
17743 {
17744 public override string Name => "FixIncludePaths";
17745 public override string CliName => "-FixIncludePaths";
17746 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
17747
17748/// <summary>Set of filters for files to include in the database. Relative to the root directory, or to the project file.</summary>
17749 public virtual FixIncludePathsConfig Filter(params object[] values)
17750 {
17751 if (true)
17752 {
17753 if (values != null)
17754 foreach (var val in values)
17755 {
17756 AppendArgument(new UnrealToolArgument(
17757 "-Filter",
17758 Value: val.ToString(),
17759 Setter: '=',
17760 Meta: new(
17761 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17762 AllowMultiple: true
17763 )
17764 ));
17765 }
17766 }
17767 return (FixIncludePathsConfig) this;
17768 }
17769
17770
17771/// <summary>Flags that this task should use p4 to check out the file before updating it.</summary>
17772 public virtual FixIncludePathsConfig CheckoutWithP4(bool? val = null)
17773 {
17774 if (true)
17775 {
17776 AppendArgument(new UnrealToolArgument(
17777 "-CheckoutWithP4",
17778 Value: val?.ToString(),
17779 Setter: '=',
17780 Meta: new(
17781 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17782 AllowMultiple: false
17783 )
17784 ));
17785 }
17786 return (FixIncludePathsConfig) this;
17787 }
17788
17789
17790/// <summary>Flags that the updated files shouldn't be saved.</summary>
17791 public virtual FixIncludePathsConfig NoOutput(bool? val = null)
17792 {
17793 if (true)
17794 {
17795 AppendArgument(new UnrealToolArgument(
17796 "-NoOutput",
17797 Value: val?.ToString(),
17798 Setter: '=',
17799 Meta: new(
17800 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17801 AllowMultiple: false
17802 )
17803 ));
17804 }
17805 return (FixIncludePathsConfig) this;
17806 }
17807
17808
17809/// <summary>Flags that includes should not be sorted.</summary>
17810 public virtual FixIncludePathsConfig NoIncludeSorting(bool? val = null)
17811 {
17812 if (true)
17813 {
17814 AppendArgument(new UnrealToolArgument(
17815 "-NoIncludeSorting",
17816 Value: val?.ToString(),
17817 Setter: '=',
17818 Meta: new(
17819 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17820 AllowMultiple: false
17821 )
17822 ));
17823 }
17824 return (FixIncludePathsConfig) this;
17825 }
17826
17827
17828/// <summary>Set of filters for #include'd lines to allow updating. Relative to the root directory, or to the project file.</summary>
17829 public virtual FixIncludePathsConfig IncludeFilter(params object[] values)
17830 {
17831 if (true)
17832 {
17833 if (values != null)
17834 foreach (var val in values)
17835 {
17836 AppendArgument(new UnrealToolArgument(
17837 "-IncludeFilter",
17838 Value: val.ToString(),
17839 Setter: '=',
17840 Meta: new(
17841 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17842 AllowMultiple: true
17843 )
17844 ));
17845 }
17846 }
17847 return (FixIncludePathsConfig) this;
17848 }
17849
17850
17851/// <summary>Forces updating and sorting the includes.</summary>
17852 public virtual FixIncludePathsConfig ForceUpdate(bool? val = null)
17853 {
17854 if (true)
17855 {
17856 AppendArgument(new UnrealToolArgument(
17857 "-ForceUpdate",
17858 Value: val?.ToString(),
17859 Setter: '=',
17860 Meta: new(
17861 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17862 AllowMultiple: false
17863 )
17864 ));
17865 }
17866 return (FixIncludePathsConfig) this;
17867 }
17868
17869
17870 private ToolConfig[] _configs = null;
17871 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
17872 {
17873 };
17874 }
17875
17876 protected readonly FixIncludePathsConfig FixIncludePathsStorage = new();
17877
17878/// <summary>
17879/// Generate a clang compile_commands file for a target
17880/// </summary>
17882 {
17883 public override string Name => "InlineGeneratedCpps";
17884 public override string CliName => "-InlineGeneratedCpps";
17885 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
17886
17887/// <summary>Set of filters for files to include in the database. Relative to the root directory, or to the project file.</summary>
17888 public virtual InlineGeneratedCppsConfig Filter(params object[] values)
17889 {
17890 if (true)
17891 {
17892 if (values != null)
17893 foreach (var val in values)
17894 {
17895 AppendArgument(new UnrealToolArgument(
17896 "-Filter",
17897 Value: val.ToString(),
17898 Setter: '=',
17899 Meta: new(
17900 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17901 AllowMultiple: true
17902 )
17903 ));
17904 }
17905 }
17906 return (InlineGeneratedCppsConfig) this;
17907 }
17908
17909
17910/// <summary>Flags that this task should use p4 to check out the file before updating it.</summary>
17911 public virtual InlineGeneratedCppsConfig CheckoutWithP4(bool? val = null)
17912 {
17913 if (true)
17914 {
17915 AppendArgument(new UnrealToolArgument(
17916 "-CheckoutWithP4",
17917 Value: val?.ToString(),
17918 Setter: '=',
17919 Meta: new(
17920 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17921 AllowMultiple: false
17922 )
17923 ));
17924 }
17925 return (InlineGeneratedCppsConfig) this;
17926 }
17927
17928
17929/// <summary>Flags that the updated files shouldn't be saved.</summary>
17930 public virtual InlineGeneratedCppsConfig NoOutput(bool? val = null)
17931 {
17932 if (true)
17933 {
17934 AppendArgument(new UnrealToolArgument(
17935 "-NoOutput",
17936 Value: val?.ToString(),
17937 Setter: '=',
17938 Meta: new(
17939 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17940 AllowMultiple: false
17941 )
17942 ));
17943 }
17944 return (InlineGeneratedCppsConfig) this;
17945 }
17946
17947
17948 private ToolConfig[] _configs = null;
17949 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
17950 {
17951 };
17952 }
17953
17954 protected readonly InlineGeneratedCppsConfig InlineGeneratedCppsStorage = new();
17955
17956/// <summary>
17957/// Generate a clang compile_commands file for a target
17958/// </summary>
17960 {
17961 public override string Name => "PrintBuildGraphInfo";
17962 public override string CliName => "-PrintBuildGraphInfo";
17963 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
17964
17965 private ToolConfig[] _configs = null;
17966 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
17967 {
17968 };
17969 }
17970
17971 protected readonly PrintBuildGraphInfoConfig PrintBuildGraphInfoStorage = new();
17972
17973/// <summary>
17974/// Builds low level tests on one or more targets.
17975/// </summary>
17976 public class TestConfig : ToolConfig
17977 {
17978 public override string Name => "Test";
17979 public override string CliName => "-Test";
17980 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
17981
17982/// <summary>
17983/// Whether we're building implicit tests (default is explicit)
17984/// </summary>
17985 public virtual TestConfig Implicit(bool? val = null)
17986 {
17987 if (true)
17988 {
17989 AppendArgument(new UnrealToolArgument(
17990 "-Implicit",
17991 Value: val?.ToString(),
17992 Setter: '=',
17993 Meta: new(
17994 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
17995 AllowMultiple: false
17996 )
17997 ));
17998 }
17999 return (TestConfig) this;
18000 }
18001
18002
18003/// <summary>
18004/// Whether we're cleaning tests instead of just building
18005/// </summary>
18006 public virtual TestConfig CleanTests(bool? val = null)
18007 {
18008 if (true)
18009 {
18010 AppendArgument(new UnrealToolArgument(
18011 "-CleanTests",
18012 Value: val?.ToString(),
18013 Setter: '=',
18014 Meta: new(
18015 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18016 AllowMultiple: false
18017 )
18018 ));
18019 }
18020 return (TestConfig) this;
18021 }
18022
18023
18024/// <summary>
18025/// Whether we're rebuilding tests instead of just building
18026/// </summary>
18027 public virtual TestConfig RebuildTests(bool? val = null)
18028 {
18029 if (true)
18030 {
18031 AppendArgument(new UnrealToolArgument(
18032 "-RebuildTests",
18033 Value: val?.ToString(),
18034 Setter: '=',
18035 Meta: new(
18036 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18037 AllowMultiple: false
18038 )
18039 ));
18040 }
18041 return (TestConfig) this;
18042 }
18043
18044
18045/// <summary>
18046/// Updates tests' build graph metadata files for explicit tests
18047/// </summary>
18048 public virtual TestConfig GenerateMetadata(bool? val = null)
18049 {
18050 if (true)
18051 {
18052 AppendArgument(new UnrealToolArgument(
18053 "-GenerateMetadata",
18054 Value: val?.ToString(),
18055 Setter: '=',
18056 Meta: new(
18057 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18058 AllowMultiple: false
18059 )
18060 ));
18061 }
18062 return (TestConfig) this;
18063 }
18064
18065
18066/// <summary>
18067/// Specific project file to run tests on or update test metadata
18068/// </summary>
18069 public virtual TestConfig Project(object val = null)
18070 {
18071 if (true)
18072 {
18073 AppendArgument(new UnrealToolArgument(
18074 "-Project",
18075 Value: val?.ToString(),
18076 Setter: '=',
18077 Meta: new(
18078 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18079 AllowMultiple: false
18080 )
18081 ));
18082 }
18083 return (TestConfig) this;
18084 }
18085
18086
18087 private ToolConfig[] _configs = null;
18088 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
18089 {
18090 };
18091 }
18092
18093 protected readonly TestConfig TestStorage = new();
18094
18095/// <summary>
18096/// Global options for UBT (any modes)
18097/// </summary>
18099 {
18100 public override string Name => "UhtGlobalOptions";
18101 public override string CliName => "";
18102 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
18103
18104/// <summary>The amount of detail to write to the log
18105/// Increase output verbosity</summary>
18106 public virtual UhtGlobalOptionsConfig Verbose(bool present = true)
18107 {
18108 if (present)
18109 {
18110 AppendArgument(new UnrealToolArgument(
18111 "-Verbose",
18112 Value: null,
18113 Setter: '=',
18114 Meta: new(
18115 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18116 AllowMultiple: false
18117 )
18118 ));
18119 }
18120 return (UhtGlobalOptionsConfig) this;
18121 }
18122
18123
18124/// <summary>The amount of detail to write to the log
18125/// Increase output verbosity more</summary>
18126 public virtual UhtGlobalOptionsConfig VeryVerbose(bool present = true)
18127 {
18128 if (present)
18129 {
18130 AppendArgument(new UnrealToolArgument(
18131 "-VeryVerbose",
18132 Value: null,
18133 Setter: '=',
18134 Meta: new(
18135 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18136 AllowMultiple: false
18137 )
18138 ));
18139 }
18140 return (UhtGlobalOptionsConfig) this;
18141 }
18142
18143
18144/// <summary>Specifies the path to a log file to write. Note that the default mode (eg. building, generating project files) will create a log file by default if this not specified.
18145/// Specify a log file location instead of the default Engine/Programs/UnrealHeaderTool/Saved/Logs/UnrealHeaderTool.log</summary>
18146 public virtual UhtGlobalOptionsConfig Log(object val = null)
18147 {
18148 if (true)
18149 {
18150 AppendArgument(new UnrealToolArgument(
18151 "-Log",
18152 Value: val?.ToString(),
18153 Setter: '=',
18154 Meta: new(
18155 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18156 AllowMultiple: false
18157 )
18158 ));
18159 }
18160 return (UhtGlobalOptionsConfig) this;
18161 }
18162
18163
18164/// <summary>Whether to include timestamps in the log
18165/// Include timestamps in the log</summary>
18166 public virtual UhtGlobalOptionsConfig Timestamps(bool? val = null)
18167 {
18168 if (true)
18169 {
18170 AppendArgument(new UnrealToolArgument(
18171 "-Timestamps",
18172 Value: val?.ToString(),
18173 Setter: '=',
18174 Meta: new(
18175 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18176 AllowMultiple: false
18177 )
18178 ));
18179 }
18180 return (UhtGlobalOptionsConfig) this;
18181 }
18182
18183
18184/// <summary>Whether to format messages in MsBuild format
18185/// Format messages for msbuild</summary>
18186 public virtual UhtGlobalOptionsConfig FromMsBuild(bool? val = null)
18187 {
18188 if (true)
18189 {
18190 AppendArgument(new UnrealToolArgument(
18191 "-FromMsBuild",
18192 Value: val?.ToString(),
18193 Setter: '=',
18194 Meta: new(
18195 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18196 AllowMultiple: false
18197 )
18198 ));
18199 }
18200 return (UhtGlobalOptionsConfig) this;
18201 }
18202
18203
18204/// <summary>Disables all logging including the default log location
18205/// Disable log file creation including the default log file</summary>
18206 public virtual UhtGlobalOptionsConfig NoLog(bool? val = null)
18207 {
18208 if (true)
18209 {
18210 AppendArgument(new UnrealToolArgument(
18211 "-NoLog",
18212 Value: val?.ToString(),
18213 Setter: '=',
18214 Meta: new(
18215 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18216 AllowMultiple: false
18217 )
18218 ));
18219 }
18220 return (UhtGlobalOptionsConfig) this;
18221 }
18222
18223
18224/// <summary>Run testing scripts</summary>
18225 public virtual UhtGlobalOptionsConfig Test(bool? val = null)
18226 {
18227 if (true)
18228 {
18229 AppendArgument(new UnrealToolArgument(
18230 "-Test",
18231 Value: val?.ToString(),
18232 Setter: '=',
18233 Meta: new(
18234 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18235 AllowMultiple: false
18236 )
18237 ));
18238 }
18239 return (UhtGlobalOptionsConfig) this;
18240 }
18241
18242
18243/// <summary>Treat warnings as errors</summary>
18244 public virtual UhtGlobalOptionsConfig WarningsAsErrors(bool? val = null)
18245 {
18246 if (true)
18247 {
18248 AppendArgument(new UnrealToolArgument(
18249 "-WarningsAsErrors",
18250 Value: val?.ToString(),
18251 Setter: '=',
18252 Meta: new(
18253 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18254 AllowMultiple: false
18255 )
18256 ));
18257 }
18258 return (UhtGlobalOptionsConfig) this;
18259 }
18260
18261
18262/// <summary>Disable concurrent parsing and code generation</summary>
18263 public virtual UhtGlobalOptionsConfig NoGoWide(bool? val = null)
18264 {
18265 if (true)
18266 {
18267 AppendArgument(new UnrealToolArgument(
18268 "-NoGoWide",
18269 Value: val?.ToString(),
18270 Setter: '=',
18271 Meta: new(
18272 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18273 AllowMultiple: false
18274 )
18275 ));
18276 }
18277 return (UhtGlobalOptionsConfig) this;
18278 }
18279
18280
18281/// <summary>Write all the output to a reference directory</summary>
18282 public virtual UhtGlobalOptionsConfig WriteRef(bool? val = null)
18283 {
18284 if (true)
18285 {
18286 AppendArgument(new UnrealToolArgument(
18287 "-WriteRef",
18288 Value: val?.ToString(),
18289 Setter: '=',
18290 Meta: new(
18291 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18292 AllowMultiple: false
18293 )
18294 ));
18295 }
18296 return (UhtGlobalOptionsConfig) this;
18297 }
18298
18299
18300/// <summary>Write all the output to a verification directory and compare to the reference output</summary>
18301 public virtual UhtGlobalOptionsConfig VerifyRef(bool? val = null)
18302 {
18303 if (true)
18304 {
18305 AppendArgument(new UnrealToolArgument(
18306 "-VerifyRef",
18307 Value: val?.ToString(),
18308 Setter: '=',
18309 Meta: new(
18310 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18311 AllowMultiple: false
18312 )
18313 ));
18314 }
18315 return (UhtGlobalOptionsConfig) this;
18316 }
18317
18318
18319/// <summary>Consider any changes to output files as being an error</summary>
18321 {
18322 if (true)
18323 {
18324 AppendArgument(new UnrealToolArgument(
18325 "-FailIfGeneratedCodeChanges",
18326 Value: val?.ToString(),
18327 Setter: '=',
18328 Meta: new(
18329 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18330 AllowMultiple: false
18331 )
18332 ));
18333 }
18334 return (UhtGlobalOptionsConfig) this;
18335 }
18336
18337
18338/// <summary>Do not save any output files other than reference output</summary>
18339 public virtual UhtGlobalOptionsConfig NoOutput(bool? val = null)
18340 {
18341 if (true)
18342 {
18343 AppendArgument(new UnrealToolArgument(
18344 "-NoOutput",
18345 Value: val?.ToString(),
18346 Setter: '=',
18347 Meta: new(
18348 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18349 AllowMultiple: false
18350 )
18351 ));
18352 }
18353 return (UhtGlobalOptionsConfig) this;
18354 }
18355
18356
18357/// <summary>Include extra content in generated output to assist with debugging</summary>
18358 public virtual UhtGlobalOptionsConfig IncludeDebugOutput(bool? val = null)
18359 {
18360 if (true)
18361 {
18362 AppendArgument(new UnrealToolArgument(
18363 "-IncludeDebugOutput",
18364 Value: val?.ToString(),
18365 Setter: '=',
18366 Meta: new(
18367 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18368 AllowMultiple: false
18369 )
18370 ));
18371 }
18372 return (UhtGlobalOptionsConfig) this;
18373 }
18374
18375
18376/// <summary>Disable all default exporters. Useful for when a specific exporter is to be run</summary>
18377 public virtual UhtGlobalOptionsConfig NoDefaultExporters(bool? val = null)
18378 {
18379 if (true)
18380 {
18381 AppendArgument(new UnrealToolArgument(
18382 "-NoDefaultExporters",
18383 Value: val?.ToString(),
18384 Setter: '=',
18385 Meta: new(
18386 Compatibility: UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18387 AllowMultiple: false
18388 )
18389 ));
18390 }
18391 return (UhtGlobalOptionsConfig) this;
18392 }
18393
18394
18395 private ToolConfig[] _configs = null;
18396 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
18397 {
18398 };
18399 }
18400
18401 protected readonly UhtGlobalOptionsConfig UhtGlobalOptionsStorage = new();
18402
18403/// <summary>
18404/// Invoke UHT
18405/// </summary>
18407 {
18408 public override string Name => "UnrealHeaderTool";
18409 public override string CliName => "-UnrealHeaderTool";
18410 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_1 | UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
18411
18412 private ToolConfig[] _configs = null;
18413 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
18414 {
18415 };
18416 }
18417
18418 protected readonly UnrealHeaderToolConfig UnrealHeaderToolStorage = new();
18419
18420/// <summary>
18421/// Profiles different unity sizes and prints out the different size and its timings
18422/// </summary>
18423 public class IWYUConfig : ToolConfig
18424 {
18425 public override string Name => "IWYU";
18426 public override string CliName => "-IWYU";
18427 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
18428
18429/// <summary>
18430/// Will check out files from p4 and write to disk
18431/// </summary>
18432 public virtual IWYUConfig Write(bool? val = null)
18433 {
18434 if (true)
18435 {
18436 AppendArgument(new UnrealToolArgument(
18437 "-Write",
18438 Value: val?.ToString(),
18439 Setter: '=',
18440 Meta: new(
18441 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18442 AllowMultiple: false
18443 )
18444 ));
18445 }
18446 return (IWYUConfig) this;
18447 }
18448
18449
18450/// <summary>
18451/// Update only includes in cpp files and don't touch headers
18452/// </summary>
18453 public virtual IWYUConfig UpdateOnlyPrivate(bool? val = null)
18454 {
18455 if (true)
18456 {
18457 AppendArgument(new UnrealToolArgument(
18458 "-UpdateOnlyPrivate",
18459 Value: val?.ToString(),
18460 Setter: '=',
18461 Meta: new(
18462 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18463 AllowMultiple: false
18464 )
18465 ));
18466 }
18467 return (IWYUConfig) this;
18468 }
18469
18470
18471/// <summary>
18472/// Which module to run IWYU on. Will also include all modules depending on this module
18473/// </summary>
18474 public virtual IWYUConfig ModuleToUpdate(object val = null)
18475 {
18476 if (true)
18477 {
18478 AppendArgument(new UnrealToolArgument(
18479 "-ModuleToUpdate",
18480 Value: val?.ToString(),
18481 Setter: '=',
18482 Meta: new(
18483 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18484 AllowMultiple: false
18485 )
18486 ));
18487 }
18488 return (IWYUConfig) this;
18489 }
18490
18491
18492/// <summary>
18493/// Which directory to run IWYU on. Will search for modules that has module directory matching this string
18494/// If no module is found in -PathToUpdate it handles this for individual files instead.
18495/// Note this can be combined with -ModuleToUpdate to double filter
18496/// PathToUpdate supports multiple paths using semi colon separation
18497/// </summary>
18498 public virtual IWYUConfig PathToUpdate(object val = null)
18499 {
18500 if (true)
18501 {
18502 AppendArgument(new UnrealToolArgument(
18503 "-PathToUpdate",
18504 Value: val?.ToString(),
18505 Setter: '=',
18506 Meta: new(
18507 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18508 AllowMultiple: false
18509 )
18510 ));
18511 }
18512 return (IWYUConfig) this;
18513 }
18514
18515
18516/// <summary>
18517/// Same as PathToUpdate but provide the list of paths in a text file instead.
18518/// Add all the desired paths on a separate line
18519/// </summary>
18520 public virtual IWYUConfig PathToUpdateFile(object val = null)
18521 {
18522 if (true)
18523 {
18524 AppendArgument(new UnrealToolArgument(
18525 "-PathToUpdateFile",
18526 Value: val?.ToString(),
18527 Setter: '=',
18528 Meta: new(
18529 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18530 AllowMultiple: false
18531 )
18532 ));
18533 }
18534 return (IWYUConfig) this;
18535 }
18536
18537
18538/// <summary>
18539/// Also update modules that are depending on the module we are updating
18540/// </summary>
18541 public virtual IWYUConfig UpdateDependents(bool? val = null)
18542 {
18543 if (true)
18544 {
18545 AppendArgument(new UnrealToolArgument(
18546 "-UpdateDependents",
18547 Value: val?.ToString(),
18548 Setter: '=',
18549 Meta: new(
18550 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18551 AllowMultiple: false
18552 )
18553 ));
18554 }
18555 return (IWYUConfig) this;
18556 }
18557
18558
18559/// <summary>
18560/// Will check out files from p4 and write to disk
18561/// </summary>
18562 public virtual IWYUConfig NoP4(bool? val = null)
18563 {
18564 if (true)
18565 {
18566 AppendArgument(new UnrealToolArgument(
18567 "-NoP4",
18568 Value: val?.ToString(),
18569 Setter: '=',
18570 Meta: new(
18571 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18572 AllowMultiple: false
18573 )
18574 ));
18575 }
18576 return (IWYUConfig) this;
18577 }
18578
18579
18580/// <summary>
18581/// Allow files to not add includes if they are transitively included by other includes
18582/// </summary>
18583 public virtual IWYUConfig NoTransitiveIncludes(bool? val = null)
18584 {
18585 if (true)
18586 {
18587 AppendArgument(new UnrealToolArgument(
18588 "-NoTransitiveIncludes",
18589 Value: val?.ToString(),
18590 Setter: '=',
18591 Meta: new(
18592 Compatibility: UnrealCompatibility.UE_5_2,
18593 AllowMultiple: false
18594 )
18595 ));
18596 }
18597 return (IWYUConfig) this;
18598 }
18599
18600
18601/// <summary>
18602/// Will skip compiling before updating. Handle with care, this is dangerous since files might not match .iwyu files
18603/// </summary>
18604 public virtual IWYUConfig NoCompile(bool? val = null)
18605 {
18606 if (true)
18607 {
18608 AppendArgument(new UnrealToolArgument(
18609 "-NoCompile",
18610 Value: val?.ToString(),
18611 Setter: '=',
18612 Meta: new(
18613 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18614 AllowMultiple: false
18615 )
18616 ));
18617 }
18618 return (IWYUConfig) this;
18619 }
18620
18621
18622/// <summary>
18623/// Will ignore update check that .iwyu is newer than source files.
18624/// </summary>
18625 public virtual IWYUConfig IgnoreUpToDateCheck(bool? val = null)
18626 {
18627 if (true)
18628 {
18629 AppendArgument(new UnrealToolArgument(
18630 "-IgnoreUpToDateCheck",
18631 Value: val?.ToString(),
18632 Setter: '=',
18633 Meta: new(
18634 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18635 AllowMultiple: false
18636 )
18637 ));
18638 }
18639 return (IWYUConfig) this;
18640 }
18641
18642
18643/// <summary>
18644/// If set, this will keep removed includes in #if/#endif scope at the end of updated file.
18645/// Applied to non-private headers that are part of the Engine folder.
18646/// </summary>
18647 public virtual IWYUConfig DeprecateTag(object val = null)
18648 {
18649 if (true)
18650 {
18651 AppendArgument(new UnrealToolArgument(
18652 "-DeprecateTag",
18653 Value: val?.ToString(),
18654 Setter: '=',
18655 Meta: new(
18656 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18657 AllowMultiple: false
18658 )
18659 ));
18660 }
18661 return (IWYUConfig) this;
18662 }
18663
18664
18665/// <summary>
18666/// Allow files to not add includes if they are transitively included by other includes
18667/// </summary>
18668 public virtual IWYUConfig NoTransitive(bool? val = null)
18669 {
18670 if (true)
18671 {
18672 AppendArgument(new UnrealToolArgument(
18673 "-NoTransitive",
18674 Value: val?.ToString(),
18675 Setter: '=',
18676 Meta: new(
18677 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18678 AllowMultiple: false
18679 )
18680 ));
18681 }
18682 return (IWYUConfig) this;
18683 }
18684
18685
18686/// <summary>
18687/// Will remove headers that are needed but redundant because they are included through other needed includes
18688/// </summary>
18689 public virtual IWYUConfig RemoveRedundant(bool? val = null)
18690 {
18691 if (true)
18692 {
18693 AppendArgument(new UnrealToolArgument(
18694 "-RemoveRedundant",
18695 Value: val?.ToString(),
18696 Setter: '=',
18697 Meta: new(
18698 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18699 AllowMultiple: false
18700 )
18701 ));
18702 }
18703 return (IWYUConfig) this;
18704 }
18705
18706
18707/// <summary>
18708/// Compare current include structure with how it would look like if iwyu was applied on all files
18709/// </summary>
18710 public virtual IWYUConfig Compare(bool? val = null)
18711 {
18712 if (true)
18713 {
18714 AppendArgument(new UnrealToolArgument(
18715 "-Compare",
18716 Value: val?.ToString(),
18717 Setter: '=',
18718 Meta: new(
18719 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18720 AllowMultiple: false
18721 )
18722 ));
18723 }
18724 return (IWYUConfig) this;
18725 }
18726
18727
18728/// <summary>
18729/// For Development only - Will write a toc referencing all .iwyu files. Toc can be used by -ReadToc
18730/// </summary>
18731 public virtual IWYUConfig WriteToc(bool? val = null)
18732 {
18733 if (true)
18734 {
18735 AppendArgument(new UnrealToolArgument(
18736 "-WriteToc",
18737 Value: val?.ToString(),
18738 Setter: '=',
18739 Meta: new(
18740 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18741 AllowMultiple: false
18742 )
18743 ));
18744 }
18745 return (IWYUConfig) this;
18746 }
18747
18748
18749/// <summary>
18750/// For Development only - Will read a toc to find all .iwyu files instead of building the code.
18751/// </summary>
18752 public virtual IWYUConfig ReadToc(bool? val = null)
18753 {
18754 if (true)
18755 {
18756 AppendArgument(new UnrealToolArgument(
18757 "-ReadToc",
18758 Value: val?.ToString(),
18759 Setter: '=',
18760 Meta: new(
18761 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18762 AllowMultiple: false
18763 )
18764 ));
18765 }
18766 return (IWYUConfig) this;
18767 }
18768
18769
18770 private ToolConfig[] _configs = null;
18771 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
18772 {
18773 };
18774 }
18775
18776 protected readonly IWYUConfig IWYUStorage = new();
18777
18778/// <summary>
18779/// Profiles different unity sizes and prints out the different size and its timings
18780/// </summary>
18782 {
18783 public override string Name => "ProfileUnitySizes";
18784 public override string CliName => "-ProfileUnitySizes";
18785 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
18786
18787/// <summary>
18788/// Set of filters for files to include in the database. Relative to the root directory, or to the project file.
18789/// </summary>
18790 public virtual ProfileUnitySizesConfig Filter(params object[] values)
18791 {
18792 if (true)
18793 {
18794 if (values != null)
18795 foreach (var val in values)
18796 {
18797 AppendArgument(new UnrealToolArgument(
18798 "-Filter",
18799 Value: val.ToString(),
18800 Setter: '=',
18801 Meta: new(
18802 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18803 AllowMultiple: true
18804 )
18805 ));
18806 }
18807 }
18808 return (ProfileUnitySizesConfig) this;
18809 }
18810
18811
18812 private ToolConfig[] _configs = null;
18813 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
18814 {
18815 };
18816 }
18817
18818 protected readonly ProfileUnitySizesConfig ProfileUnitySizesStorage = new();
18819
18820
18822 {
18823 public override string Name => "Server";
18824 public override string CliName => "-Server";
18825 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
18826
18827
18828 public virtual ServerConfig LogDirectory(object val = null)
18829 {
18830 if (true)
18831 {
18832 AppendArgument(new UnrealToolArgument(
18833 "-LogDirectory",
18834 Value: val?.ToString(),
18835 Setter: '=',
18836 Meta: new(
18837 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18838 AllowMultiple: false
18839 )
18840 ));
18841 }
18842 return (ServerConfig) this;
18843 }
18844
18845
18846 private ToolConfig[] _configs = null;
18847 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
18848 {
18849 };
18850 }
18851
18852 protected readonly ServerConfig ServerStorage = new();
18853
18854/// <summary></summary>
18856 {
18857 public override string Name => "VSCodeProjectFileGenerator";
18858 public override string CliName => "";
18859 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
18860
18861/// <summary>
18862/// Do not create compile commands json files with compiler arguments for each file; works better with VS Code extension using
18863/// UBT server mode.
18864/// </summary>
18866 {
18867 if (true)
18868 {
18869 AppendArgument(new UnrealToolArgument(
18870 "-NoCompileCommands",
18871 Value: val?.ToString(),
18872 Setter: '=',
18873 Meta: new(
18874 Compatibility: UnrealCompatibility.UE_5_2 | UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18875 AllowMultiple: false
18876 )
18877 ));
18878 }
18880 }
18881
18882
18883/// <summary>
18884/// Create a workspace file for use with VS Code extension that communicates directly with UBT.
18885/// </summary>
18887 {
18888 if (true)
18889 {
18890 AppendArgument(new UnrealToolArgument(
18891 "-UseVSCodeExtension",
18892 Value: val?.ToString(),
18893 Setter: '=',
18894 Meta: new(
18895 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18896 AllowMultiple: false
18897 )
18898 ));
18899 }
18901 }
18902
18903
18904 private ToolConfig[] _configs = null;
18905 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
18906 {
18907 };
18908 }
18909
18910 protected readonly VSCodeProjectFileGeneratorConfig VSCodeProjectFileGeneratorStorage = new();
18911
18912
18914 {
18915 public override string Name => "ClRepro";
18916 public override string CliName => "-ClRepro";
18917 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
18918
18919/// <summary>REQUIRED!</summary>
18920 public virtual ClReproConfig InputCpp(object val = null)
18921 {
18922 if (true)
18923 {
18924 AppendArgument(new UnrealToolArgument(
18925 "-InputCpp",
18926 Value: val?.ToString(),
18927 Setter: '=',
18928 Meta: new(
18929 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18930 AllowMultiple: false
18931 )
18932 ));
18933 }
18934 return (ClReproConfig) this;
18935 }
18936
18937
18938/// <summary>REQUIRED!</summary>
18939 public virtual ClReproConfig OutputDir(object val = null)
18940 {
18941 if (true)
18942 {
18943 AppendArgument(new UnrealToolArgument(
18944 "-OutputDir",
18945 Value: val?.ToString(),
18946 Setter: '=',
18947 Meta: new(
18948 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18949 AllowMultiple: false
18950 )
18951 ));
18952 }
18953 return (ClReproConfig) this;
18954 }
18955
18956
18957 private ToolConfig[] _configs = null;
18958 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
18959 {
18960 };
18961 }
18962
18963 protected readonly ClReproConfig ClReproStorage = new();
18964
18965
18967 {
18968 public override string Name => "Query";
18969 public override string CliName => "-Query";
18970 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
18971
18972
18973 public virtual QueryConfig LogDirectory(object val = null)
18974 {
18975 if (true)
18976 {
18977 AppendArgument(new UnrealToolArgument(
18978 "-LogDirectory",
18979 Value: val?.ToString(),
18980 Setter: '=',
18981 Meta: new(
18982 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
18983 AllowMultiple: false
18984 )
18985 ));
18986 }
18987 return (QueryConfig) this;
18988 }
18989
18990
18991
18992 public virtual QueryConfig Query(QueryType? val = null)
18993 {
18994 if (true)
18995 {
18996 AppendArgument(new UnrealToolArgument(
18997 "-Query",
18998 Value: val?.ToString(),
18999 Setter: '=',
19000 Meta: new(
19001 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19002 AllowMultiple: false
19003 )
19004 ));
19005 }
19006 return (QueryConfig) this;
19007 }
19008
19009
19010
19011 public virtual QueryConfig IncludeEngineSource(bool? val = null)
19012 {
19013 if (true)
19014 {
19015 AppendArgument(new UnrealToolArgument(
19016 "-IncludeEngineSource",
19017 Value: val?.ToString(),
19018 Setter: '=',
19019 Meta: new(
19020 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19021 AllowMultiple: false
19022 )
19023 ));
19024 }
19025 return (QueryConfig) this;
19026 }
19027
19028
19029
19030 public virtual QueryConfig Target(object val = null)
19031 {
19032 if (true)
19033 {
19034 AppendArgument(new UnrealToolArgument(
19035 "-Target",
19036 Value: val?.ToString(),
19037 Setter: '=',
19038 Meta: new(
19039 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19040 AllowMultiple: false
19041 )
19042 ));
19043 }
19044 return (QueryConfig) this;
19045 }
19046
19047
19048
19049 public virtual QueryConfig Configuration(object val = null)
19050 {
19051 if (true)
19052 {
19053 AppendArgument(new UnrealToolArgument(
19054 "-Configuration",
19055 Value: val?.ToString(),
19056 Setter: '=',
19057 Meta: new(
19058 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19059 AllowMultiple: false
19060 )
19061 ));
19062 }
19063 return (QueryConfig) this;
19064 }
19065
19066
19067
19068 public virtual QueryConfig Platform(object val = null)
19069 {
19070 if (true)
19071 {
19072 AppendArgument(new UnrealToolArgument(
19073 "-Platform",
19074 Value: val?.ToString(),
19075 Setter: '=',
19076 Meta: new(
19077 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19078 AllowMultiple: false
19079 )
19080 ));
19081 }
19082 return (QueryConfig) this;
19083 }
19084
19085
19086
19087 public virtual QueryConfig Indented(bool? val = null)
19088 {
19089 if (true)
19090 {
19091 AppendArgument(new UnrealToolArgument(
19092 "-Indented",
19093 Value: val?.ToString(),
19094 Setter: '=',
19095 Meta: new(
19096 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19097 AllowMultiple: false
19098 )
19099 ));
19100 }
19101 return (QueryConfig) this;
19102 }
19103
19104
19105
19106 public virtual QueryConfig OutputPath(object val = null)
19107 {
19108 if (true)
19109 {
19110 AppendArgument(new UnrealToolArgument(
19111 "-OutputPath",
19112 Value: val?.ToString(),
19113 Setter: '=',
19114 Meta: new(
19115 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19116 AllowMultiple: false
19117 )
19118 ));
19119 }
19120 return (QueryConfig) this;
19121 }
19122
19123
19124
19125 public virtual QueryConfig LoadTargets(bool? val = null)
19126 {
19127 if (true)
19128 {
19129 AppendArgument(new UnrealToolArgument(
19130 "-LoadTargets",
19131 Value: val?.ToString(),
19132 Setter: '=',
19133 Meta: new(
19134 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19135 AllowMultiple: false
19136 )
19137 ));
19138 }
19139 return (QueryConfig) this;
19140 }
19141
19142
19143
19144 public virtual QueryConfig NoIntellisense(bool? val = null)
19145 {
19146 if (true)
19147 {
19148 AppendArgument(new UnrealToolArgument(
19149 "-NoIntellisense",
19150 Value: val?.ToString(),
19151 Setter: '=',
19152 Meta: new(
19153 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19154 AllowMultiple: false
19155 )
19156 ));
19157 }
19158 return (QueryConfig) this;
19159 }
19160
19161
19162 private ToolConfig[] _configs = null;
19163 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
19164 {
19165 };
19166 }
19167
19168 protected readonly QueryConfig QueryStorage = new();
19169
19170
19172 {
19173 public override string Name => "ApplePostBuildSync";
19174 public override string CliName => "-ApplePostBuildSync";
19175 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
19176
19177/// <summary>REQUIRED!</summary>
19178 public virtual ApplePostBuildSyncConfig Input(object val = null)
19179 {
19180 if (true)
19181 {
19182 AppendArgument(new UnrealToolArgument(
19183 "-Input",
19184 Value: val?.ToString(),
19185 Setter: '=',
19186 Meta: new(
19187 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19188 AllowMultiple: false
19189 )
19190 ));
19191 }
19192 return (ApplePostBuildSyncConfig) this;
19193 }
19194
19195
19196
19197 public virtual ApplePostBuildSyncConfig XmlConfigCache(object val = null)
19198 {
19199 if (true)
19200 {
19201 AppendArgument(new UnrealToolArgument(
19202 "-XmlConfigCache",
19203 Value: val?.ToString(),
19204 Setter: '=',
19205 Meta: new(
19206 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19207 AllowMultiple: false
19208 )
19209 ));
19210 }
19211 return (ApplePostBuildSyncConfig) this;
19212 }
19213
19214
19215
19216 public virtual ApplePostBuildSyncConfig ModernXcode(bool? val = null)
19217 {
19218 if (true)
19219 {
19220 AppendArgument(new UnrealToolArgument(
19221 "-ModernXcode",
19222 Value: val?.ToString(),
19223 Setter: '=',
19224 Meta: new(
19225 Compatibility: UnrealCompatibility.UE_5_3 | UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19226 AllowMultiple: false
19227 )
19228 ));
19229 }
19230 return (ApplePostBuildSyncConfig) this;
19231 }
19232
19233
19234
19235 public virtual ApplePostBuildSyncConfig NoEntitlements(bool? val = null)
19236 {
19237 if (true)
19238 {
19239 AppendArgument(new UnrealToolArgument(
19240 "-noEntitlements",
19241 Value: val?.ToString(),
19242 Setter: '=',
19243 Meta: new(
19244 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19245 AllowMultiple: false
19246 )
19247 ));
19248 }
19249 return (ApplePostBuildSyncConfig) this;
19250 }
19251
19252
19253 private ToolConfig[] _configs = null;
19254 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
19255 {
19256 };
19257 }
19258
19259 protected readonly ApplePostBuildSyncConfig ApplePostBuildSyncStorage = new();
19260
19261/// <summary>
19262/// Helper class to manage the action queue
19263///
19264/// Running the queue can be done with a mixture of automatic and manual runners. Runners are responsible for performing
19265/// the work associated with an action. Automatic runners will have actions automatically queued to them up to the point
19266/// that any runtime limits aren't exceeded (such as maximum number of concurrent processes). Manual runners must have
19267/// jobs queued to them by calling TryStartOneAction or StartManyActions with the runner specified.
19268///
19269/// For example:
19270///
19271/// ParallelExecutor uses an automatic runner exclusively.
19272/// UBAExecutor uses an automatic runner to run jobs locally and a manual runner to run jobs remotely as processes
19273/// become available.
19274/// </summary>
19276 {
19277 public override string Name => "ImmediateActionQueue";
19278 public override string CliName => "";
19279 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
19280
19281/// <summary>
19282/// Number of second of no completed actions to trigger an action stall report.
19283/// If zero, stall reports will not be enabled.
19284/// </summary>
19285 public virtual ImmediateActionQueueConfig ActionStallReportTime(double? val = null)
19286 {
19287 if (true)
19288 {
19289 AppendArgument(new UnrealToolArgument(
19290 "-ActionStallReportTime",
19291 Value: val?.ToString(),
19292 Setter: '=',
19293 Meta: new(
19294 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19295 AllowMultiple: false
19296 )
19297 ));
19298 }
19299 return (ImmediateActionQueueConfig) this;
19300 }
19301
19302
19303/// <summary>
19304/// Number of second of no completed actions to trigger to terminate the queue.
19305/// If zero, force termination not be enabled.
19306/// </summary>
19307 public virtual ImmediateActionQueueConfig ActionStallTerminateTime(double? val = null)
19308 {
19309 if (true)
19310 {
19311 AppendArgument(new UnrealToolArgument(
19312 "-ActionStallTerminateTime",
19313 Value: val?.ToString(),
19314 Setter: '=',
19315 Meta: new(
19316 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19317 AllowMultiple: false
19318 )
19319 ));
19320 }
19321 return (ImmediateActionQueueConfig) this;
19322 }
19323
19324
19325 private ToolConfig[] _configs = null;
19326 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
19327 {
19328 };
19329 }
19330
19331 protected readonly ImmediateActionQueueConfig ImmediateActionQueueStorage = new();
19332
19333/// <summary>
19334/// Configuration for Unreal Build Accelerator
19335/// </summary>
19337 {
19338 public override string Name => "UnrealBuildAcceleratorConfig";
19339 public override string CliName => "";
19340 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
19341
19342/// <summary>
19343/// When set to true, UBA will not use any remote help
19344/// </summary>
19346 {
19347 if (true)
19348 {
19349 AppendArgument(new UnrealToolArgument(
19350 "-UBADisableRemote",
19351 Value: val?.ToString(),
19352 Setter: '=',
19353 Meta: new(
19354 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19355 AllowMultiple: false
19356 )
19357 ));
19358 }
19360 }
19361
19362
19363/// <summary>
19364/// When set to true, UBA will force all actions that can be built remotely to be built remotely. This will hang if there are no remote agents available
19365/// </summary>
19367 {
19368 if (true)
19369 {
19370 AppendArgument(new UnrealToolArgument(
19371 "-UBAForceRemote",
19372 Value: val?.ToString(),
19373 Setter: '=',
19374 Meta: new(
19375 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19376 AllowMultiple: false
19377 )
19378 ));
19379 }
19381 }
19382
19383
19384/// <summary>When set to true, actions that fail locally with UBA will be retried without UBA.
19385/// When set to true, all actions that fail locally with UBA will be retried without UBA.</summary>
19387 {
19388 if (true)
19389 {
19390 AppendArgument(new UnrealToolArgument(
19391 "-UBAForcedRetry",
19392 Value: val?.ToString(),
19393 Setter: '=',
19394 Meta: new(
19395 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19396 AllowMultiple: false
19397 )
19398 ));
19399 }
19401 }
19402
19403
19404/// <summary>
19405/// When set to true, all errors and warnings from UBA will be output at the appropriate severity level to the log (rather than being output as 'information' and attempting to continue regardless).
19406/// </summary>
19407 public virtual UnrealBuildAcceleratorConfigConfig UBAStrict(bool? val = null)
19408 {
19409 if (true)
19410 {
19411 AppendArgument(new UnrealToolArgument(
19412 "-UBAStrict",
19413 Value: val?.ToString(),
19414 Setter: '=',
19415 Meta: new(
19416 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19417 AllowMultiple: false
19418 )
19419 ));
19420 }
19422 }
19423
19424
19425/// <summary>
19426/// If UBA should store cas compressed or raw
19427/// </summary>
19428 public virtual UnrealBuildAcceleratorConfigConfig UBAStoreRaw(bool? val = null)
19429 {
19430 if (true)
19431 {
19432 AppendArgument(new UnrealToolArgument(
19433 "-UBAStoreRaw",
19434 Value: val?.ToString(),
19435 Setter: '=',
19436 Meta: new(
19437 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19438 AllowMultiple: false
19439 )
19440 ));
19441 }
19443 }
19444
19445
19446/// <summary>
19447/// If UBA should distribute linking to remote workers. This needs bandwidth but can be an optimization
19448/// </summary>
19449 public virtual UnrealBuildAcceleratorConfigConfig UBALinkRemote(bool? val = null)
19450 {
19451 if (true)
19452 {
19453 AppendArgument(new UnrealToolArgument(
19454 "-UBALinkRemote",
19455 Value: val?.ToString(),
19456 Setter: '=',
19457 Meta: new(
19458 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19459 AllowMultiple: false
19460 )
19461 ));
19462 }
19464 }
19465
19466
19467/// <summary>
19468/// The amount of gigabytes UBA is allowed to use to store workset and cached data. It is a good idea to have this &gt;10gb
19469/// </summary>
19471 {
19472 if (true)
19473 {
19474 AppendArgument(new UnrealToolArgument(
19475 "-UBAStoreCapacityGb",
19476 Value: val?.ToString(),
19477 Setter: '=',
19478 Meta: new(
19479 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19480 AllowMultiple: false
19481 )
19482 ));
19483 }
19485 }
19486
19487
19488/// <summary>
19489/// Max number of worker threads that can handle messages from remotes.
19490/// </summary>
19491 public virtual UnrealBuildAcceleratorConfigConfig UBAMaxWorkers(double? val = null)
19492 {
19493 if (true)
19494 {
19495 AppendArgument(new UnrealToolArgument(
19496 "-UBAMaxWorkers",
19497 Value: val?.ToString(),
19498 Setter: '=',
19499 Meta: new(
19500 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19501 AllowMultiple: false
19502 )
19503 ));
19504 }
19506 }
19507
19508
19509/// <summary>
19510/// Max size of each message sent from server to client
19511/// </summary>
19512 public virtual UnrealBuildAcceleratorConfigConfig UBASendSize(double? val = null)
19513 {
19514 if (true)
19515 {
19516 AppendArgument(new UnrealToolArgument(
19517 "-UBASendSize",
19518 Value: val?.ToString(),
19519 Setter: '=',
19520 Meta: new(
19521 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19522 AllowMultiple: false
19523 )
19524 ));
19525 }
19527 }
19528
19529
19530/// <summary>
19531/// Which ip UBA server should listen to for connections
19532/// </summary>
19533 public virtual UnrealBuildAcceleratorConfigConfig UBAHost(object val = null)
19534 {
19535 if (true)
19536 {
19537 AppendArgument(new UnrealToolArgument(
19538 "-UBAHost",
19539 Value: val?.ToString(),
19540 Setter: '=',
19541 Meta: new(
19542 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19543 AllowMultiple: false
19544 )
19545 ));
19546 }
19548 }
19549
19550
19551/// <summary>
19552/// Which port UBA server should listen to for connections.
19553/// </summary>
19554 public virtual UnrealBuildAcceleratorConfigConfig UBAPort(double? val = null)
19555 {
19556 if (true)
19557 {
19558 AppendArgument(new UnrealToolArgument(
19559 "-UBAPort",
19560 Value: val?.ToString(),
19561 Setter: '=',
19562 Meta: new(
19563 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19564 AllowMultiple: false
19565 )
19566 ));
19567 }
19569 }
19570
19571
19572/// <summary>
19573/// Which directory to store files for UBA.
19574/// </summary>
19575 public virtual UnrealBuildAcceleratorConfigConfig UBARootDir(object val = null)
19576 {
19577 if (true)
19578 {
19579 AppendArgument(new UnrealToolArgument(
19580 "-UBARootDir",
19581 Value: val?.ToString(),
19582 Setter: '=',
19583 Meta: new(
19584 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19585 AllowMultiple: false
19586 )
19587 ));
19588 }
19590 }
19591
19592
19593/// <summary>
19594/// Use Quic protocol instead of Tcp (experimental)
19595/// </summary>
19596 public virtual UnrealBuildAcceleratorConfigConfig UBAQuic(bool present = true)
19597 {
19598 if (present)
19599 {
19600 AppendArgument(new UnrealToolArgument(
19601 "-UBAQuic",
19602 Value: null,
19603 Setter: '=',
19604 Meta: new(
19605 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19606 AllowMultiple: false
19607 )
19608 ));
19609 }
19611 }
19612
19613
19614/// <summary>
19615/// Enable logging of UBA processes
19616/// </summary>
19617 public virtual UnrealBuildAcceleratorConfigConfig UBALog(bool present = true)
19618 {
19619 if (present)
19620 {
19621 AppendArgument(new UnrealToolArgument(
19622 "-UBALog",
19623 Value: null,
19624 Setter: '=',
19625 Meta: new(
19626 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19627 AllowMultiple: false
19628 )
19629 ));
19630 }
19632 }
19633
19634
19635/// <summary>
19636/// Prints summary of UBA stats at end of build
19637/// </summary>
19638 public virtual UnrealBuildAcceleratorConfigConfig UBAPrintSummary(bool present = true)
19639 {
19640 if (present)
19641 {
19642 AppendArgument(new UnrealToolArgument(
19643 "-UBAPrintSummary",
19644 Value: null,
19645 Setter: '=',
19646 Meta: new(
19647 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19648 AllowMultiple: false
19649 )
19650 ));
19651 }
19653 }
19654
19655
19656/// <summary>
19657/// Launch visualizer application which shows build progress
19658/// </summary>
19659 public virtual UnrealBuildAcceleratorConfigConfig UBAVisualizer(bool present = true)
19660 {
19661 if (present)
19662 {
19663 AppendArgument(new UnrealToolArgument(
19664 "-UBAVisualizer",
19665 Value: null,
19666 Setter: '=',
19667 Meta: new(
19668 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19669 AllowMultiple: false
19670 )
19671 ));
19672 }
19674 }
19675
19676
19677/// <summary>
19678/// Resets the cas cache
19679/// </summary>
19680 public virtual UnrealBuildAcceleratorConfigConfig UBAResetCas(bool present = true)
19681 {
19682 if (present)
19683 {
19684 AppendArgument(new UnrealToolArgument(
19685 "-UBAResetCas",
19686 Value: null,
19687 Setter: '=',
19688 Meta: new(
19689 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19690 AllowMultiple: false
19691 )
19692 ));
19693 }
19695 }
19696
19697
19698/// <summary>
19699/// Provide custom path for trace output file
19700/// </summary>
19702 {
19703 if (true)
19704 {
19705 AppendArgument(new UnrealToolArgument(
19706 "-UBATraceOutputFile",
19707 Value: val?.ToString(),
19708 Setter: '=',
19709 Meta: new(
19710 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19711 AllowMultiple: false
19712 )
19713 ));
19714 }
19716 }
19717
19718
19719/// <summary>
19720/// Add verbose details to the UBA trace
19721/// </summary>
19722 public virtual UnrealBuildAcceleratorConfigConfig UBADetailedTrace(bool present = true)
19723 {
19724 if (present)
19725 {
19726 AppendArgument(new UnrealToolArgument(
19727 "-UBADetailedTrace",
19728 Value: null,
19729 Setter: '=',
19730 Meta: new(
19731 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19732 AllowMultiple: false
19733 )
19734 ));
19735 }
19737 }
19738
19739
19740/// <summary>
19741/// Disable UBA waiting on available memory before spawning new processes
19742/// </summary>
19744 {
19745 if (present)
19746 {
19747 AppendArgument(new UnrealToolArgument(
19748 "-UBADisableWaitOnMem",
19749 Value: null,
19750 Setter: '=',
19751 Meta: new(
19752 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19753 AllowMultiple: false
19754 )
19755 ));
19756 }
19758 }
19759
19760
19761/// <summary>
19762/// Let UBA kill running processes when close to out of memory
19763/// </summary>
19764 public virtual UnrealBuildAcceleratorConfigConfig UBAAllowKillOnMem(bool present = true)
19765 {
19766 if (present)
19767 {
19768 AppendArgument(new UnrealToolArgument(
19769 "-UBAAllowKillOnMem",
19770 Value: null,
19771 Setter: '=',
19772 Meta: new(
19773 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19774 AllowMultiple: false
19775 )
19776 ));
19777 }
19779 }
19780
19781
19782/// <summary>
19783/// Threshold for when executor should output logging for the process. Defaults to never
19784/// </summary>
19786 {
19787 if (true)
19788 {
19789 AppendArgument(new UnrealToolArgument(
19790 "-UBAOutputStatsThresholdMs",
19791 Value: val?.ToString(),
19792 Setter: '=',
19793 Meta: new(
19794 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5,
19795 AllowMultiple: false
19796 )
19797 ));
19798 }
19800 }
19801
19802
19803/// <summary>
19804/// Skip writing intermediate and output files to disk. Useful for validation builds where we don't need the output
19805/// </summary>
19806 public virtual UnrealBuildAcceleratorConfigConfig UBANoWrite(bool present = true)
19807 {
19808 if (present)
19809 {
19810 AppendArgument(new UnrealToolArgument(
19811 "-UBANoWrite",
19812 Value: null,
19813 Setter: '=',
19814 Meta: new(
19815 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19816 AllowMultiple: false
19817 )
19818 ));
19819 }
19821 }
19822
19823
19824/// <summary>
19825/// Set to true to disable mimalloc and detouring of memory allocations.
19826/// </summary>
19827 public virtual UnrealBuildAcceleratorConfigConfig UBANoCustomMalloc(bool present = true)
19828 {
19829 if (present)
19830 {
19831 AppendArgument(new UnrealToolArgument(
19832 "-UBANoCustomMalloc",
19833 Value: null,
19834 Setter: '=',
19835 Meta: new(
19836 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19837 AllowMultiple: false
19838 )
19839 ));
19840 }
19842 }
19843
19844
19845/// <summary>
19846/// The zone to use for UBA.
19847/// </summary>
19848 public virtual UnrealBuildAcceleratorConfigConfig UBAZone(object val = null)
19849 {
19850 if (true)
19851 {
19852 AppendArgument(new UnrealToolArgument(
19853 "-UBAZone",
19854 Value: val?.ToString(),
19855 Setter: '=',
19856 Meta: new(
19857 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19858 AllowMultiple: false
19859 )
19860 ));
19861 }
19863 }
19864
19865
19866/// <summary>
19867/// Set to true to enable encryption when transferring files over the network.
19868/// </summary>
19869 public virtual UnrealBuildAcceleratorConfigConfig UBACrypto(bool present = true)
19870 {
19871 if (present)
19872 {
19873 AppendArgument(new UnrealToolArgument(
19874 "-UBACrypto",
19875 Value: null,
19876 Setter: '=',
19877 Meta: new(
19878 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19879 AllowMultiple: false
19880 )
19881 ));
19882 }
19884 }
19885
19886
19887/// <summary>
19888/// Set to true to provide known inputs to processes that are run remote. This is an experimental feature to speed up build times when ping is higher
19889/// </summary>
19890 public virtual UnrealBuildAcceleratorConfigConfig UBAUseKnownInputs(bool present = true)
19891 {
19892 if (present)
19893 {
19894 AppendArgument(new UnrealToolArgument(
19895 "-UBAUseKnownInputs",
19896 Value: null,
19897 Setter: '=',
19898 Meta: new(
19899 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19900 AllowMultiple: false
19901 )
19902 ));
19903 }
19905 }
19906
19907
19908/// <summary>
19909/// Write yaml file with all actions that are queued for build. This can be used to replay using "UbaCli.exe local file.yaml"
19910/// </summary>
19912 {
19913 if (true)
19914 {
19915 AppendArgument(new UnrealToolArgument(
19916 "-UBAActionsOutputFile",
19917 Value: val?.ToString(),
19918 Setter: '=',
19919 Meta: new(
19920 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19921 AllowMultiple: false
19922 )
19923 ));
19924 }
19926 }
19927
19928
19929/// <summary>
19930/// Set to true to see more info about what is happening inside uba and also log output from agents
19931/// </summary>
19932 public virtual UnrealBuildAcceleratorConfigConfig UBADetailedLog(bool present = true)
19933 {
19934 if (present)
19935 {
19936 AppendArgument(new UnrealToolArgument(
19937 "-UBADetailedLog",
19938 Value: null,
19939 Setter: '=',
19940 Meta: new(
19941 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19942 AllowMultiple: false
19943 )
19944 ));
19945 }
19947 }
19948
19949
19950/// <summary>
19951/// When set to true, actions that fail remotely with UBA will be retried locally with UBA.
19952/// </summary>
19954 {
19955 if (true)
19956 {
19957 AppendArgument(new UnrealToolArgument(
19958 "-UBAForcedRetryRemote",
19959 Value: val?.ToString(),
19960 Setter: '=',
19961 Meta: new(
19962 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19963 AllowMultiple: false
19964 )
19965 ));
19966 }
19968 }
19969
19970
19971/// <summary>
19972/// Store object (.obj) compressed on disk. Requires uba to do link step where it will decompress obj files again
19973/// </summary>
19975 {
19976 if (present)
19977 {
19978 AppendArgument(new UnrealToolArgument(
19979 "-UBAStoreObjFilesCompressed",
19980 Value: null,
19981 Setter: '=',
19982 Meta: new(
19983 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
19984 AllowMultiple: false
19985 )
19986 ));
19987 }
19989 }
19990
19991
19992/// <summary>
19993/// Address of the uba cache service. Will automatically use cache if connected
19994/// </summary>
19995 public virtual UnrealBuildAcceleratorConfigConfig UBACache(object val = null)
19996 {
19997 if (true)
19998 {
19999 AppendArgument(new UnrealToolArgument(
20000 "-UBACache",
20001 Value: val?.ToString(),
20002 Setter: '=',
20003 Meta: new(
20004 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20005 AllowMultiple: false
20006 )
20007 ));
20008 }
20010 }
20011
20012
20013/// <summary>Set cache to write instead of fetch
20014/// Set cache to write, expects one of [True, False, BuildMachineOnly]</summary>
20015 public virtual UnrealBuildAcceleratorConfigConfig UBAWriteCache(bool? val = null)
20016 {
20017 if (true)
20018 {
20019 AppendArgument(new UnrealToolArgument(
20020 "-UBAWriteCache",
20021 Value: val?.ToString(),
20022 Setter: '=',
20023 Meta: new(
20024 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20025 AllowMultiple: false
20026 )
20027 ));
20028 }
20030 }
20031
20032
20033/// <summary>
20034/// Max number of cache download tasks that can execute in parallel
20035/// </summary>
20037 {
20038 if (true)
20039 {
20040 AppendArgument(new UnrealToolArgument(
20041 "-UBACacheMaxWorkers",
20042 Value: val?.ToString(),
20043 Setter: '=',
20044 Meta: new(
20045 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20046 AllowMultiple: false
20047 )
20048 ));
20049 }
20051 }
20052
20053
20054/// <summary>
20055/// Report reason a cache miss happened. Useful when searching for determinism/portability issues
20056/// </summary>
20058 {
20059 if (true)
20060 {
20061 AppendArgument(new UnrealToolArgument(
20062 "-UBAReportCacheMissReason",
20063 Value: val?.ToString(),
20064 Setter: '=',
20065 Meta: new(
20066 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20067 AllowMultiple: false
20068 )
20069 ));
20070 }
20072 }
20073
20074
20075/// <summary>
20076/// List of provider names for remote connections from ini
20077/// It is recommended to set Providers in ini so the setting can be shared with the uba controller in editor, such as
20078/// Windows: %ProgramData%/Epic/Unreal Engine/Engine/Config/SystemEngine.ini
20079/// Mac: ~/Library/Application Support/Epic/Unreal Engine/Engine/Config/SystemEngine.ini
20080/// Linux: ~/.config/Epic/Unreal Engine/Engine/Config/SystemEngine.ini
20081/// </summary>
20082 public virtual UnrealBuildAcceleratorConfigConfig UBAProviders(params object[] values)
20083 {
20084 if (true)
20085 {
20086 AppendArgument(new UnrealToolArgument(
20087 "-UBAProviders",
20088 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
20089 Setter: '=',
20090 Meta: new(
20091 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20092 AllowMultiple: true
20093 )
20094 ));
20095 }
20097 }
20098
20099
20100/// <summary>
20101/// List of provider names for remote cache from ini
20102/// </summary>
20103 public virtual UnrealBuildAcceleratorConfigConfig UBACacheProviders(params object[] values)
20104 {
20105 if (true)
20106 {
20107 AppendArgument(new UnrealToolArgument(
20108 "-UBACacheProviders",
20109 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
20110 Setter: '=',
20111 Meta: new(
20112 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20113 AllowMultiple: true
20114 )
20115 ));
20116 }
20118 }
20119
20120
20121/// <summary>
20122/// When set to true, actions that fail locally with certain error codes will retry without uba.
20123/// </summary>
20124 public virtual UnrealBuildAcceleratorConfigConfig UBANoRetry(bool present = true)
20125 {
20126 if (present)
20127 {
20128 AppendArgument(new UnrealToolArgument(
20129 "-UBANoRetry",
20130 Value: null,
20131 Setter: '=',
20132 Meta: new(
20133 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20134 AllowMultiple: false
20135 )
20136 ));
20137 }
20139 }
20140
20141
20142/// <summary>
20143/// Store object (.obj) compressed on disk. Requires uba to do link step where it will decompress obj files again
20144/// </summary>
20146 {
20147 if (present)
20148 {
20149 AppendArgument(new UnrealToolArgument(
20150 "-UBADisableStoreObjFilesCompressed",
20151 Value: null,
20152 Setter: '=',
20153 Meta: new(
20154 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20155 AllowMultiple: false
20156 )
20157 ));
20158 }
20160 }
20161
20162
20163/// <summary>
20164/// Disable all detouring making all actions run outside uba
20165/// </summary>
20166 public virtual UnrealBuildAcceleratorConfigConfig UBANoDetour(bool present = true)
20167 {
20168 if (present)
20169 {
20170 AppendArgument(new UnrealToolArgument(
20171 "-UBANoDetour",
20172 Value: null,
20173 Setter: '=',
20174 Meta: new(
20175 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20176 AllowMultiple: false
20177 )
20178 ));
20179 }
20181 }
20182
20183
20184/// <summary>
20185/// Shuffle the list of cache servers before each read attempt
20186/// </summary>
20188 {
20189 if (true)
20190 {
20191 AppendArgument(new UnrealToolArgument(
20192 "-UBAShuffleCache",
20193 Value: val?.ToString(),
20194 Setter: '=',
20195 Meta: new(
20196 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20197 AllowMultiple: false
20198 )
20199 ));
20200 }
20202 }
20203
20204
20205/// <summary>
20206/// Compression level. Options are None, SuperFast, VeryFast, Fast, Normal, Optimal1 to Optimal5
20207/// </summary>
20209 {
20210 if (true)
20211 {
20212 AppendArgument(new UnrealToolArgument(
20213 "-UBACompressionLevel",
20214 Value: val?.ToString(),
20215 Setter: '=',
20216 Meta: new(
20217 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20218 AllowMultiple: false
20219 )
20220 ));
20221 }
20223 }
20224
20225
20226/// <summary>
20227/// Store object (.obj) compressed on disk. Requires uba to do link step where it will decompress obj files again
20228/// </summary>
20229 public virtual UnrealBuildAcceleratorConfigConfig Nocompress(bool present = true)
20230 {
20231 if (present)
20232 {
20233 AppendArgument(new UnrealToolArgument(
20234 "-nocompress",
20235 Value: null,
20236 Setter: '=',
20237 Meta: new(
20238 Compatibility: UnrealCompatibility.UE_5_Latest,
20239 AllowMultiple: false
20240 )
20241 ));
20242 }
20244 }
20245
20246
20247 private ToolConfig[] _configs = null;
20248 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
20249 {
20250 };
20251 }
20252
20253 protected readonly UnrealBuildAcceleratorConfigConfig UnrealBuildAcceleratorConfigStorage = new();
20254
20255/// <summary>
20256/// Configuration for Unreal Build Accelerator Horde session
20257/// </summary>
20259 {
20260 public override string Name => "UnrealBuildAcceleratorHordeConfig";
20261 public override string CliName => "";
20262 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
20263
20264/// <summary>
20265/// Uri of the Horde server
20266/// </summary>
20267 public virtual UnrealBuildAcceleratorHordeConfigConfig UBAHorde(object val = null)
20268 {
20269 if (true)
20270 {
20271 AppendArgument(new UnrealToolArgument(
20272 "-UBAHorde",
20273 Value: val?.ToString(),
20274 Setter: '=',
20275 Meta: new(
20276 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20277 AllowMultiple: false
20278 )
20279 ));
20280 }
20282 }
20283
20284
20285/// <summary>Uri of the Horde server
20286/// Auth token for the Horde server</summary>
20288 {
20289 if (true)
20290 {
20291 AppendArgument(new UnrealToolArgument(
20292 "-UBAHordeToken",
20293 Value: val?.ToString(),
20294 Setter: '=',
20295 Meta: new(
20296 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20297 AllowMultiple: false
20298 )
20299 ));
20300 }
20302 }
20303
20304
20305/// <summary>
20306/// OIDC id for the login to use
20307/// </summary>
20309 {
20310 if (true)
20311 {
20312 AppendArgument(new UnrealToolArgument(
20313 "-UBAHordeOidc",
20314 Value: val?.ToString(),
20315 Setter: '=',
20316 Meta: new(
20317 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20318 AllowMultiple: false
20319 )
20320 ));
20321 }
20323 }
20324
20325
20326/// <summary>
20327/// Pool for the Horde agent to assign, only used for commandline override
20328/// </summary>
20330 {
20331 if (true)
20332 {
20333 AppendArgument(new UnrealToolArgument(
20334 "-UBAHordePool",
20335 Value: val?.ToString(),
20336 Setter: '=',
20337 Meta: new(
20338 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20339 AllowMultiple: false
20340 )
20341 ));
20342 }
20344 }
20345
20346
20347/// <summary>
20348/// Requirements for the Horde agent to assign
20349/// </summary>
20351 {
20352 if (true)
20353 {
20354 AppendArgument(new UnrealToolArgument(
20355 "-UBAHordeRequirements",
20356 Value: val?.ToString(),
20357 Setter: '=',
20358 Meta: new(
20359 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20360 AllowMultiple: false
20361 )
20362 ));
20363 }
20365 }
20366
20367
20368/// <summary>
20369/// Which ip UBA server should give to agents. This will invert so host listens and agents connect
20370/// </summary>
20372 {
20373 if (true)
20374 {
20375 AppendArgument(new UnrealToolArgument(
20376 "-UBAHordeHost",
20377 Value: val?.ToString(),
20378 Setter: '=',
20379 Meta: new(
20380 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20381 AllowMultiple: false
20382 )
20383 ));
20384 }
20386 }
20387
20388
20389/// <summary>
20390/// Max cores allowed to be used by build session
20391/// </summary>
20393 {
20394 if (true)
20395 {
20396 AppendArgument(new UnrealToolArgument(
20397 "-UBAHordeMaxCores",
20398 Value: val?.ToString(),
20399 Setter: '=',
20400 Meta: new(
20401 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20402 AllowMultiple: false
20403 )
20404 ));
20405 }
20407 }
20408
20409
20410/// <summary>
20411/// How long UBT should wait to ask for help. Useful in build configs where machine can delay remote work and still get same wall time results (pch dependencies etc)
20412/// </summary>
20414 {
20415 if (true)
20416 {
20417 AppendArgument(new UnrealToolArgument(
20418 "-UBAHordeDelay",
20419 Value: val?.ToString(),
20420 Setter: '=',
20421 Meta: new(
20422 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20423 AllowMultiple: false
20424 )
20425 ));
20426 }
20428 }
20429
20430
20431/// <summary>
20432/// Allow use of Wine. Only applicable to Horde agents running Linux. Can still be ignored if Wine executable is not set on agent.
20433/// </summary>
20435 {
20436 if (present)
20437 {
20438 AppendArgument(new UnrealToolArgument(
20439 "-UBAHordeAllowWine",
20440 Value: null,
20441 Setter: '=',
20442 Meta: new(
20443 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20444 AllowMultiple: false
20445 )
20446 ));
20447 }
20449 }
20450
20451
20452/// <summary>
20453/// Connection mode for agent/compute communication
20454/// <see cref="ConnectionMode" /> for valid modes.
20455/// </summary>
20457 {
20458 if (true)
20459 {
20460 AppendArgument(new UnrealToolArgument(
20461 "-UBAHordeConnectionMode",
20462 Value: val?.ToString(),
20463 Setter: '=',
20464 Meta: new(
20465 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20466 AllowMultiple: false
20467 )
20468 ));
20469 }
20471 }
20472
20473
20474/// <summary>
20475/// Encryption to use for agent/compute communication. Note that UBA agent uses its own encryption.
20476/// <see cref="Encryption" /> for valid modes.
20477/// </summary>
20479 {
20480 if (true)
20481 {
20482 AppendArgument(new UnrealToolArgument(
20483 "-UBAHordeEncryption",
20484 Value: val?.ToString(),
20485 Setter: '=',
20486 Meta: new(
20487 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20488 AllowMultiple: false
20489 )
20490 ));
20491 }
20493 }
20494
20495
20496/// <summary>
20497/// Sentry URL to send box data to. Optional.
20498/// </summary>
20500 {
20501 if (true)
20502 {
20503 AppendArgument(new UnrealToolArgument(
20504 "-UBASentryUrl",
20505 Value: val?.ToString(),
20506 Setter: '=',
20507 Meta: new(
20508 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20509 AllowMultiple: false
20510 )
20511 ));
20512 }
20514 }
20515
20516
20517/// <summary>
20518/// Disable horde all together
20519/// </summary>
20521 {
20522 if (true)
20523 {
20524 AppendArgument(new UnrealToolArgument(
20525 "-UBADisableHorde",
20526 Value: val?.ToString(),
20527 Setter: '=',
20528 Meta: new(
20529 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20530 AllowMultiple: false
20531 )
20532 ));
20533 }
20535 }
20536
20537
20538/// <summary>
20539/// Compute cluster ID to use in Horde. Set to "_auto" to let Horde server resolve a suitable cluster.
20540/// In multi-region setups this is can simplify configuration of UBT/UBA a lot.
20541/// </summary>
20543 {
20544 if (true)
20545 {
20546 AppendArgument(new UnrealToolArgument(
20547 "-UBAHordeCluster",
20548 Value: val?.ToString(),
20549 Setter: '=',
20550 Meta: new(
20551 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20552 AllowMultiple: false
20553 )
20554 ));
20555 }
20557 }
20558
20559
20560/// <summary>
20561/// Max workers allowed to be used by build session
20562/// </summary>
20564 {
20565 if (true)
20566 {
20567 AppendArgument(new UnrealToolArgument(
20568 "-UBAHordeMaxWorkers",
20569 Value: val?.ToString(),
20570 Setter: '=',
20571 Meta: new(
20572 Compatibility: UnrealCompatibility.UE_5_Latest,
20573 AllowMultiple: false
20574 )
20575 ));
20576 }
20578 }
20579
20580
20581/// <summary>
20582/// Max idle time in seconds to maintain a connection to a worker when no pending actions are currently available due to waiting on dependencies
20583/// </summary>
20585 {
20586 if (true)
20587 {
20588 AppendArgument(new UnrealToolArgument(
20589 "-UBAHordeMaxIdle",
20590 Value: val?.ToString(),
20591 Setter: '=',
20592 Meta: new(
20593 Compatibility: UnrealCompatibility.UE_5_Latest,
20594 AllowMultiple: false
20595 )
20596 ));
20597 }
20599 }
20600
20601
20602/// <summary>
20603/// Enabled parameter for use by INI config, expects one of [True, False, BuildMachineOnly]
20604/// </summary>
20606 {
20607 if (true)
20608 {
20609 AppendArgument(new UnrealToolArgument(
20610 "-UBAHordeCacheEnabled",
20611 Value: val?.ToString(),
20612 Setter: '=',
20613 Meta: new(
20614 Compatibility: UnrealCompatibility.UE_5_Latest,
20615 AllowMultiple: false
20616 )
20617 ));
20618 }
20620 }
20621
20622
20623/// <summary>
20624/// Number of desired connections when connecting to cache
20625/// </summary>
20627 {
20628 if (true)
20629 {
20630 AppendArgument(new UnrealToolArgument(
20631 "-UBAHordeCacheDesiredConnectionCount",
20632 Value: val?.ToString(),
20633 Setter: '=',
20634 Meta: new(
20635 Compatibility: UnrealCompatibility.UE_5_Latest,
20636 AllowMultiple: false
20637 )
20638 ));
20639 }
20641 }
20642
20643
20644 private ToolConfig[] _configs = null;
20645 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
20646 {
20647 };
20648 }
20649
20650 protected readonly UnrealBuildAcceleratorHordeConfigConfig UnrealBuildAcceleratorHordeConfigStorage = new();
20651
20652/// <summary>
20653/// Identifies plugins with python requirements and attempts to install all dependencies using pip.
20654/// </summary>
20656 {
20657 public override string Name => "PipInstall";
20658 public override string CliName => "-PipInstall";
20659 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
20660
20661/// <summary>Full path to python interpreter engine was built with (if unspecified use value in PythonSDKRoot.txt)
20662/// Full path to python interpreter to use in case the engine is built against an external python SDK</summary>
20663 public virtual PipInstallConfig PythonInterpreter(object val = null)
20664 {
20665 if (true)
20666 {
20667 AppendArgument(new UnrealToolArgument(
20668 "-PythonInterpreter",
20669 Value: val?.ToString(),
20670 Setter: '=',
20671 Meta: new(
20672 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20673 AllowMultiple: false
20674 )
20675 ));
20676 }
20677 return (PipInstallConfig) this;
20678 }
20679
20680
20681/// <summary>The action the pip install tool should implement (GenRequirements, Setup, Parse, Install, ViewLicenses, default: Install)
20682/// Pip action: [GenRequirements, Setup, Parse, Install, ViewLicenses, default: Install]</summary>
20683 public virtual PipInstallConfig PipAction(PipAction? val = null)
20684 {
20685 if (true)
20686 {
20687 AppendArgument(new UnrealToolArgument(
20688 "-PipAction",
20689 Value: val?.ToString(),
20690 Setter: '=',
20691 Meta: new(
20692 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20693 AllowMultiple: false
20694 )
20695 ));
20696 }
20697 return (PipInstallConfig) this;
20698 }
20699
20700
20701/// <summary>Disable requiring hashes in pip install requirements (NOTE: this is insecure and may simplify supply-chain attacks)
20702/// Do not require package hashes (WARNING: Enabling this flag is security risk)</summary>
20703 public virtual PipInstallConfig IgnoreHashes(bool? val = null)
20704 {
20705 if (true)
20706 {
20707 AppendArgument(new UnrealToolArgument(
20708 "-IgnoreHashes",
20709 Value: val?.ToString(),
20710 Setter: '=',
20711 Meta: new(
20712 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20713 AllowMultiple: false
20714 )
20715 ));
20716 }
20717 return (PipInstallConfig) this;
20718 }
20719
20720
20721/// <summary>Allow overriding the index url (this will also disable extra-urls)
20722/// Use the specified index-url (WARNING: Should not be combined with IgnoreHashes)</summary>
20723 public virtual PipInstallConfig OverrideIndexUrl(object val = null)
20724 {
20725 if (true)
20726 {
20727 AppendArgument(new UnrealToolArgument(
20728 "-OverrideIndexUrl",
20729 Value: val?.ToString(),
20730 Setter: '=',
20731 Meta: new(
20732 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20733 AllowMultiple: false
20734 )
20735 ));
20736 }
20737 return (PipInstallConfig) this;
20738 }
20739
20740
20741/// <summary>
20742/// Run pip installer on all plugins in project and engine
20743/// </summary>
20744 public virtual PipInstallConfig AllPlugins(bool? val = null)
20745 {
20746 if (true)
20747 {
20748 AppendArgument(new UnrealToolArgument(
20749 "-AllPlugins",
20750 Value: val?.ToString(),
20751 Setter: '=',
20752 Meta: new(
20753 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20754 AllowMultiple: false
20755 )
20756 ));
20757 }
20758 return (PipInstallConfig) this;
20759 }
20760
20761
20762 private ToolConfig[] _configs = null;
20763 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
20764 {
20765 };
20766 }
20767
20768 protected readonly PipInstallConfig PipInstallStorage = new();
20769
20770/// <summary></summary>
20772 {
20773 public override string Name => "VSWorkspaceProjectFileGenerator";
20774 public override string CliName => "";
20775 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
20776
20777/// <summary>
20778/// Platforms to generate project files for
20779/// </summary>
20780 public virtual VSWorkspaceProjectFileGeneratorConfig Platforms(params object[] values)
20781 {
20782 if (true)
20783 {
20784 AppendArgument(new UnrealToolArgument(
20785 "-Platforms",
20786 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
20787 Setter: '=',
20788 Meta: new(
20789 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20790 AllowMultiple: true
20791 )
20792 ));
20793 }
20795 }
20796
20797
20798/// <summary>
20799/// Target types to generate project files for
20800/// </summary>
20802 {
20803 if (true)
20804 {
20805 AppendArgument(new UnrealToolArgument(
20806 "-TargetTypes",
20807 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
20808 Setter: '=',
20809 Meta: new(
20810 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20811 AllowMultiple: true
20812 )
20813 ));
20814 }
20816 }
20817
20818
20819/// <summary>
20820/// Target configurations to generate project files for
20821/// </summary>
20823 {
20824 if (true)
20825 {
20826 AppendArgument(new UnrealToolArgument(
20827 "-TargetConfigurations",
20828 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
20829 Setter: '=',
20830 Meta: new(
20831 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20832 AllowMultiple: true
20833 )
20834 ));
20835 }
20837 }
20838
20839
20840/// <summary>
20841/// Projects to generate project files for
20842/// </summary>
20843 public virtual VSWorkspaceProjectFileGeneratorConfig ProjectNames(params object[] values)
20844 {
20845 if (true)
20846 {
20847 AppendArgument(new UnrealToolArgument(
20848 "-ProjectNames",
20849 Value: values != null && values.Length > 0 ? string.Join("+", values) : null,
20850 Setter: '=',
20851 Meta: new(
20852 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20853 AllowMultiple: true
20854 )
20855 ));
20856 }
20858 }
20859
20860
20861/// <summary>
20862/// Should format JSON files in human readable form, or use packed one without indents
20863/// </summary>
20864 public virtual VSWorkspaceProjectFileGeneratorConfig Minimize(bool present = true)
20865 {
20866 if (present)
20867 {
20868 AppendArgument(new UnrealToolArgument(
20869 "-Minimize",
20870 Value: null,
20871 Setter: '=',
20872 Meta: new(
20873 Compatibility: UnrealCompatibility.UE_5_4 | UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20874 AllowMultiple: false
20875 )
20876 ));
20877 }
20879 }
20880
20881
20882/// <summary>Outputs all the available configurations, platforms and targets to a file provided by the user.</summary>
20883 public virtual VSWorkspaceProjectFileGeneratorConfig Query(object val = null)
20884 {
20885 if (true)
20886 {
20887 AppendArgument(new UnrealToolArgument(
20888 "-Query",
20889 Value: val?.ToString(),
20890 Setter: '=',
20891 Meta: new(
20892 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20893 AllowMultiple: false
20894 )
20895 ));
20896 }
20898 }
20899
20900
20901
20902 public virtual VSWorkspaceProjectFileGeneratorConfig TargetDescriptionFile(object val = null)
20903 {
20904 if (true)
20905 {
20906 AppendArgument(new UnrealToolArgument(
20907 "-TargetDescriptionFile",
20908 Value: val?.ToString(),
20909 Setter: '=',
20910 Meta: new(
20911 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20912 AllowMultiple: false
20913 )
20914 ));
20915 }
20916 return (VSWorkspaceProjectFileGeneratorConfig) this;
20917 }
20918
20919
20920/// <summary>Show version information and exit.</summary>
20922 {
20923 if (true)
20924 {
20925 AppendArgument(new UnrealToolArgument(
20926 "-WorkspaceGeneratorVersion",
20927 Value: val?.ToString(),
20928 Setter: '=',
20929 Meta: new(
20930 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20931 AllowMultiple: false
20932 )
20933 ));
20934 }
20936 }
20937
20938
20939/// <summary>Generate .vsconfig file with dependencies and exit</summary>
20941 {
20942 if (true)
20943 {
20944 AppendArgument(new UnrealToolArgument(
20945 "-GenerateVsConfigOnly",
20946 Value: val?.ToString(),
20947 Setter: '=',
20948 Meta: new(
20949 Compatibility: UnrealCompatibility.UE_5_5 | UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20950 AllowMultiple: false
20951 )
20952 ));
20953 }
20955 }
20956
20957
20958 private ToolConfig[] _configs = null;
20959 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
20960 {
20961 };
20962 }
20963
20964 protected readonly VSWorkspaceProjectFileGeneratorConfig VSWorkspaceProjectFileGeneratorStorage = new();
20965
20966/// <summary>
20967/// Container class used for C++ compiler warning settings.
20968/// </summary>
20970 {
20971 public override string Name => "CppCompileWarnings";
20972 public override string CliName => "";
20973 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
20974
20975/// <summary>
20976/// Forces shadow variable warnings to be treated as errors on platforms that support it.
20977/// MSVC -
20978/// https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4456
20979/// 4456 - declaration of 'LocalVariable' hides previous local declaration
20980/// https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4458
20981/// 4458 - declaration of 'parameter' hides class member
20982/// https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4459
20983/// 4459 - declaration of 'LocalVariable' hides global declaration
20984/// Clang -
20985/// https://clang.llvm.org/docs/DiagnosticsReference.html#wshadow
20986/// </summary>
20988 {
20989 if (true)
20990 {
20991 AppendArgument(new UnrealToolArgument(
20992 "-ShadowVariableErrors",
20993 Value: val?.ToString(),
20994 Setter: '=',
20995 Meta: new(
20996 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
20997 AllowMultiple: false
20998 )
20999 ));
21000 }
21001 return (CppCompileWarningsConfig) this;
21002 }
21003
21004
21005/// <summary>
21006/// Indicates what warning/error level to treat undefined identifiers in conditional expressions.
21007/// MSVC -
21008/// https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4668
21009/// 4668 - 'symbol' is not defined as a preprocessor macro, replacing with '0' for 'directives'
21010/// 44668 - Note: The extra 4 is not a typo, /wLXXXX sets warning XXXX to level L
21011/// Clang -
21012/// https://clang.llvm.org/docs/DiagnosticsReference.html#wundef
21013/// </summary>
21015 {
21016 if (true)
21017 {
21018 AppendArgument(new UnrealToolArgument(
21019 "-UndefinedIdentifierWarningLevel",
21020 Value: val?.ToString(),
21021 Setter: '=',
21022 Meta: new(
21023 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
21024 AllowMultiple: false
21025 )
21026 ));
21027 }
21028 return (CppCompileWarningsConfig) this;
21029 }
21030
21031
21032/// <summary>
21033/// Indicates what warning/error level to treat unhandled enumerators in switches on enumeration-typed values.
21034/// MSVC -
21035/// 4061 - https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4061
21036/// 44061 - Note: The extra 4 is not a typo, /wLXXXX sets warning XXXX to level L
21037/// Clang -
21038/// https://clang.llvm.org/docs/DiagnosticsReference.html#wswitch-enum
21039/// </summary>
21041 {
21042 if (true)
21043 {
21044 AppendArgument(new UnrealToolArgument(
21045 "-SwitchUnhandledEnumeratorWarningLevel",
21046 Value: val?.ToString(),
21047 Setter: '=',
21048 Meta: new(
21049 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
21050 AllowMultiple: false
21051 )
21052 ));
21053 }
21054 return (CppCompileWarningsConfig) this;
21055 }
21056
21057
21058/// <summary>
21059/// Indicates what warning/error level to treat potential PCH performance issues.
21060/// </summary>
21062 {
21063 if (true)
21064 {
21065 AppendArgument(new UnrealToolArgument(
21066 "-PCHPerformanceIssueWarningLevel",
21067 Value: val?.ToString(),
21068 Setter: '=',
21069 Meta: new(
21070 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
21071 AllowMultiple: false
21072 )
21073 ));
21074 }
21075 return (CppCompileWarningsConfig) this;
21076 }
21077
21078
21079/// <summary>
21080/// How to treat module unsupported validation messages
21081/// </summary>
21083 {
21084 if (true)
21085 {
21086 AppendArgument(new UnrealToolArgument(
21087 "-ModuleUnsupportedWarningLevel",
21088 Value: val?.ToString(),
21089 Setter: '=',
21090 Meta: new(
21091 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
21092 AllowMultiple: false
21093 )
21094 ));
21095 }
21096 return (CppCompileWarningsConfig) this;
21097 }
21098
21099
21100/// <summary>
21101/// How to treat plugin specific module unsupported validation messages
21102/// </summary>
21104 {
21105 if (true)
21106 {
21107 AppendArgument(new UnrealToolArgument(
21108 "-PluginModuleUnsupportedWarningLevel",
21109 Value: val?.ToString(),
21110 Setter: '=',
21111 Meta: new(
21112 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
21113 AllowMultiple: false
21114 )
21115 ));
21116 }
21117 return (CppCompileWarningsConfig) this;
21118 }
21119
21120
21121/// <summary>
21122/// How to treat general module include path validation messages
21123/// </summary>
21125 {
21126 if (true)
21127 {
21128 AppendArgument(new UnrealToolArgument(
21129 "-ModuleIncludePathWarningLevel",
21130 Value: val?.ToString(),
21131 Setter: '=',
21132 Meta: new(
21133 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
21134 AllowMultiple: false
21135 )
21136 ));
21137 }
21138 return (CppCompileWarningsConfig) this;
21139 }
21140
21141
21142/// <summary>
21143/// How to treat private module include path validation messages, where a module is adding an include path that exposes private headers
21144/// </summary>
21146 {
21147 if (true)
21148 {
21149 AppendArgument(new UnrealToolArgument(
21150 "-ModuleIncludePrivateWarningLevel",
21151 Value: val?.ToString(),
21152 Setter: '=',
21153 Meta: new(
21154 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
21155 AllowMultiple: false
21156 )
21157 ));
21158 }
21159 return (CppCompileWarningsConfig) this;
21160 }
21161
21162
21163/// <summary>
21164/// How to treat unnecessary module sub-directory include path validation messages
21165/// </summary>
21167 {
21168 if (true)
21169 {
21170 AppendArgument(new UnrealToolArgument(
21171 "-ModuleIncludeSubdirectoryWarningLevel",
21172 Value: val?.ToString(),
21173 Setter: '=',
21174 Meta: new(
21175 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
21176 AllowMultiple: false
21177 )
21178 ));
21179 }
21180 return (CppCompileWarningsConfig) this;
21181 }
21182
21183
21184 private ToolConfig[] _configs = null;
21185 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
21186 {
21187 };
21188 }
21189
21190 protected readonly CppCompileWarningsConfig CppCompileWarningsStorage = new();
21191
21192/// <summary>
21193/// Configuration for Unreal Build Accelerator
21194/// </summary>
21196 {
21197 public override string Name => "UnrealBuildAcceleratorCacheConfig";
21198 public override string CliName => "";
21199 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest;
21200
21201/// <summary>
21202/// Address of the uba cache service. Will automatically use cache if connected
21203/// </summary>
21204 public virtual UnrealBuildAcceleratorCacheConfigConfig UBACache(object val = null)
21205 {
21206 if (true)
21207 {
21208 AppendArgument(new UnrealToolArgument(
21209 "-UBACache",
21210 Value: val?.ToString(),
21211 Setter: '=',
21212 Meta: new(
21213 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
21214 AllowMultiple: false
21215 )
21216 ));
21217 }
21219 }
21220
21221
21222/// <summary>
21223/// Set cache to write, expects one of [True, False, BuildMachineOnly]
21224/// </summary>
21225 public virtual UnrealBuildAcceleratorCacheConfigConfig UBAWriteCache(bool present = true)
21226 {
21227 if (present)
21228 {
21229 AppendArgument(new UnrealToolArgument(
21230 "-UBAWriteCache",
21231 Value: null,
21232 Setter: '=',
21233 Meta: new(
21234 Compatibility: UnrealCompatibility.UE_5_6 | UnrealCompatibility.UE_5_Latest,
21235 AllowMultiple: false
21236 )
21237 ));
21238 }
21240 }
21241
21242
21243 private ToolConfig[] _configs = null;
21244 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
21245 {
21246 };
21247 }
21248
21249 protected readonly UnrealBuildAcceleratorCacheConfigConfig UnrealBuildAcceleratorCacheConfigStorage = new();
21250
21251/// <summary>
21252/// Apple-specific target settings
21253/// </summary>
21255 {
21256 public override string Name => "AppleTargetRules";
21257 public override string CliName => "";
21258 public override UnrealCompatibility Compatibility => UnrealCompatibility.UE_5_Latest;
21259
21260/// <summary>
21261/// Whether to strip symbols or not (implied by Shipping config).
21262/// </summary>
21263 public virtual AppleTargetRulesConfig Stripsymbols(bool present = true)
21264 {
21265 if (present)
21266 {
21267 AppendArgument(new UnrealToolArgument(
21268 "-stripsymbols",
21269 Value: null,
21270 Setter: '=',
21271 Meta: new(
21272 Compatibility: UnrealCompatibility.UE_5_Latest,
21273 AllowMultiple: false
21274 )
21275 ));
21276 }
21277 return (AppleTargetRulesConfig) this;
21278 }
21279
21280
21281/// <summary>
21282/// Whether to create a ".stripped" file when stripping symbols or not.
21283/// </summary>
21284 public virtual AppleTargetRulesConfig Createstripflagfile(bool present = true)
21285 {
21286 if (present)
21287 {
21288 AppendArgument(new UnrealToolArgument(
21289 "-createstripflagfile",
21290 Value: null,
21291 Setter: '=',
21292 Meta: new(
21293 Compatibility: UnrealCompatibility.UE_5_Latest,
21294 AllowMultiple: false
21295 )
21296 ));
21297 }
21298 return (AppleTargetRulesConfig) this;
21299 }
21300
21301
21302/// <summary>
21303/// Disables clang build verification checks on static libraries
21304/// </summary>
21305 public virtual AppleTargetRulesConfig Skipclangvalidation(bool present = true)
21306 {
21307 if (present)
21308 {
21309 AppendArgument(new UnrealToolArgument(
21310 "-skipclangvalidation",
21311 Value: null,
21312 Setter: '=',
21313 Meta: new(
21314 Compatibility: UnrealCompatibility.UE_5_Latest,
21315 AllowMultiple: false
21316 )
21317 ));
21318 }
21319 return (AppleTargetRulesConfig) this;
21320 }
21321
21322
21323/// <summary>
21324/// Enables address sanitizer (ASan).
21325/// </summary>
21326 public virtual AppleTargetRulesConfig EnableASan(bool? val = null)
21327 {
21328 if (true)
21329 {
21330 AppendArgument(new UnrealToolArgument(
21331 "-EnableASan",
21332 Value: val?.ToString(),
21333 Setter: '=',
21334 Meta: new(
21335 Compatibility: UnrealCompatibility.UE_5_Latest,
21336 AllowMultiple: false
21337 )
21338 ));
21339 }
21340 return (AppleTargetRulesConfig) this;
21341 }
21342
21343
21344/// <summary>
21345/// Enables thread sanitizer (TSan).
21346/// </summary>
21347 public virtual AppleTargetRulesConfig EnableTSan(bool? val = null)
21348 {
21349 if (true)
21350 {
21351 AppendArgument(new UnrealToolArgument(
21352 "-EnableTSan",
21353 Value: val?.ToString(),
21354 Setter: '=',
21355 Meta: new(
21356 Compatibility: UnrealCompatibility.UE_5_Latest,
21357 AllowMultiple: false
21358 )
21359 ));
21360 }
21361 return (AppleTargetRulesConfig) this;
21362 }
21363
21364
21365/// <summary>
21366/// Enables undefined behavior sanitizer (UBSan).
21367/// </summary>
21368 public virtual AppleTargetRulesConfig EnableUBSan(bool? val = null)
21369 {
21370 if (true)
21371 {
21372 AppendArgument(new UnrealToolArgument(
21373 "-EnableUBSan",
21374 Value: val?.ToString(),
21375 Setter: '=',
21376 Meta: new(
21377 Compatibility: UnrealCompatibility.UE_5_Latest,
21378 AllowMultiple: false
21379 )
21380 ));
21381 }
21382 return (AppleTargetRulesConfig) this;
21383 }
21384
21385
21386 private ToolConfig[] _configs = null;
21387 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
21388 {
21389 };
21390 }
21391
21392 protected readonly AppleTargetRulesConfig AppleTargetRulesStorage = new();
21393
21394 private ToolConfig[] _configs = null;
21395 protected override ToolConfig[] Configs => _configs ??= new ToolConfig[]
21396 {
21397 UnrealBuildToolStorage,
21398 GlobalOptionsStorage,
21399 BuildConfigurationStorage,
21400 TargetDescriptorStorage,
21401 TargetRulesStorage,
21402 AggregateParsedTimingInfoStorage,
21403 BuildStorage,
21404 CleanStorage,
21405 DeployStorage,
21406 ExecuteStorage,
21407 GenerateClangDatabaseStorage,
21408 GenerateProjectFilesStorage,
21409 JsonExportStorage,
21410 ParseMsvcTimingInfoStorage,
21411 QueryTargetsStorage,
21412 SetupPlatformsStorage,
21413 ValidatePlatformsStorage,
21414 WriteDocumentationStorage,
21415 WriteMetadataStorage,
21416 AndroidToolChainStorage,
21417 AndroidTargetRulesStorage,
21418 UEDeployAndroidStorage,
21419 HoloLensTargetRulesStorage,
21420 IOSPostBuildSyncStorage,
21421 IOSTargetRulesStorage,
21422 IOSProjectSettingsStorage,
21423 LinuxTargetRulesStorage,
21424 LuminToolChainStorage,
21425 LuminTargetRulesStorage,
21426 MacTargetRulesStorage,
21427 PVSGatherStorage,
21428 WindowsTargetRulesStorage,
21429 RiderProjectFileGeneratorStorage,
21430 AnalyzeStorage,
21431 AggregateClangTimingInfoStorage,
21432 FixIncludePathsStorage,
21433 InlineGeneratedCppsStorage,
21434 PrintBuildGraphInfoStorage,
21435 TestStorage,
21436 UhtGlobalOptionsStorage,
21437 UnrealHeaderToolStorage,
21438 IWYUStorage,
21439 ProfileUnitySizesStorage,
21440 ServerStorage,
21441 VSCodeProjectFileGeneratorStorage,
21442 ClReproStorage,
21443 QueryStorage,
21444 ApplePostBuildSyncStorage,
21445 ImmediateActionQueueStorage,
21446 UnrealBuildAcceleratorConfigStorage,
21447 UnrealBuildAcceleratorHordeConfigStorage,
21448 PipInstallStorage,
21449 VSWorkspaceProjectFileGeneratorStorage,
21450 CppCompileWarningsStorage,
21451 UnrealBuildAcceleratorCacheConfigStorage,
21452 AppleTargetRulesStorage,
21453 };
21454/// <summary></summary>
21455 public UbtConfig UnrealBuildTool(Action<UnrealBuildToolConfig> configurator)
21456 {
21457 configurator?.Invoke(UnrealBuildToolStorage);
21458 AppendSubtool(UnrealBuildToolStorage);
21459 return (UbtConfig) this;
21460 }
21461/// <summary>
21462/// Global options for UBT (any modes)
21463/// </summary>
21464 public UbtConfig GlobalOptions(Action<GlobalOptionsConfig> configurator)
21465 {
21466 configurator?.Invoke(GlobalOptionsStorage);
21467 AppendSubtool(GlobalOptionsStorage);
21468 return (UbtConfig) this;
21469 }
21470/// <summary>
21471/// Global settings for building. Should not contain any target-specific settings.
21472/// </summary>
21473 public UbtConfig BuildConfiguration(Action<BuildConfigurationConfig> configurator)
21474 {
21475 configurator?.Invoke(BuildConfigurationStorage);
21476 AppendSubtool(BuildConfigurationStorage);
21477 return (UbtConfig) this;
21478 }
21479/// <summary>
21480/// Describes all of the information needed to initialize a UEBuildTarget object
21481/// </summary>
21482 public UbtConfig TargetDescriptor(Action<TargetDescriptorConfig> configurator)
21483 {
21484 configurator?.Invoke(TargetDescriptorStorage);
21485 AppendSubtool(TargetDescriptorStorage);
21486 return (UbtConfig) this;
21487 }
21488/// <summary>
21489/// TargetRules is a data structure that contains the rules for defining a target (application/executable)
21490/// </summary>
21491 public UbtConfig TargetRules(Action<TargetRulesConfig> configurator)
21492 {
21493 configurator?.Invoke(TargetRulesStorage);
21494 AppendSubtool(TargetRulesStorage);
21495 return (UbtConfig) this;
21496 }
21497/// <summary>
21498/// Aggregates parsed Visual C++ timing information files together into one monolithic breakdown file.
21499/// </summary>
21500/// <summary>
21501/// Aggregates parsed Visual C++ timing information files together into one monolithic breakdown file.
21502/// </summary>
21503 public UbtConfig AggregateParsedTimingInfo(Action<AggregateParsedTimingInfoConfig> configurator)
21504 {
21505 configurator?.Invoke(AggregateParsedTimingInfoStorage);
21506 AppendSubtool(AggregateParsedTimingInfoStorage);
21507 return (UbtConfig) this;
21508 }
21509/// <summary>
21510/// Builds a target
21511/// </summary>
21512 public UbtConfig Build(Action<BuildConfig> configurator)
21513 {
21514 configurator?.Invoke(BuildStorage);
21515 AppendSubtool(BuildStorage);
21516 return (UbtConfig) this;
21517 }
21518/// <summary>Cleans build products and intermediates for the target. This deletes files which are named consistently with the target being built
21519/// (e.g. UE4Editor-Foo-Win64-Debug.dll) rather than an actual record of previous build products.
21520/// Cleans build products and intermediates for the target. This deletes files which are named consistently with the target being built
21521/// (e.g. UnrealEditor-Foo-Win64-Debug.dll) rather than an actual record of previous build products.</summary>
21522 public UbtConfig Clean(Action<CleanConfig> configurator)
21523 {
21524 configurator?.Invoke(CleanStorage);
21525 AppendSubtool(CleanStorage);
21526 return (UbtConfig) this;
21527 }
21528/// <summary>
21529/// Invokes the deployment handler for a target.
21530/// </summary>
21531 public UbtConfig Deploy(Action<DeployConfig> configurator)
21532 {
21533 configurator?.Invoke(DeployStorage);
21534 AppendSubtool(DeployStorage);
21535 return (UbtConfig) this;
21536 }
21537/// <summary>
21538/// Builds a target
21539/// </summary>
21540 public UbtConfig Execute(Action<ExecuteConfig> configurator)
21541 {
21542 configurator?.Invoke(ExecuteStorage);
21543 AppendSubtool(ExecuteStorage);
21544 return (UbtConfig) this;
21545 }
21546/// <summary>
21547/// Generate a clang compile_commands file for a target
21548/// </summary>
21549 public UbtConfig GenerateClangDatabase(Action<GenerateClangDatabaseConfig> configurator)
21550 {
21551 configurator?.Invoke(GenerateClangDatabaseStorage);
21552 AppendSubtool(GenerateClangDatabaseStorage);
21553 return (UbtConfig) this;
21554 }
21555/// <summary>
21556/// Generates project files for one or more projects
21557/// </summary>
21558 public UbtConfig GenerateProjectFiles(Action<GenerateProjectFilesConfig> configurator)
21559 {
21560 configurator?.Invoke(GenerateProjectFilesStorage);
21561 AppendSubtool(GenerateProjectFilesStorage);
21562 return (UbtConfig) this;
21563 }
21564/// <summary>
21565/// Exports a target as a JSON file
21566/// </summary>
21567 public UbtConfig JsonExport(Action<JsonExportConfig> configurator)
21568 {
21569 configurator?.Invoke(JsonExportStorage);
21570 AppendSubtool(JsonExportStorage);
21571 return (UbtConfig) this;
21572 }
21573/// <summary>
21574/// Parses an MSVC timing info file generated from cl-filter to turn it into a form that can be used by other tooling.
21575/// This is implemented as a separate mode to allow it to be done as part of the action graph.
21576/// </summary>
21577/// <summary>
21578/// Parses an MSVC timing info file generated from cl-filter to turn it into a form that can be used by other tooling.
21579/// This is implemented as a separate mode to allow it to be done as part of the action graph.
21580/// </summary>
21581 public UbtConfig ParseMsvcTimingInfo(Action<ParseMsvcTimingInfoConfig> configurator)
21582 {
21583 configurator?.Invoke(ParseMsvcTimingInfoStorage);
21584 AppendSubtool(ParseMsvcTimingInfoStorage);
21585 return (UbtConfig) this;
21586 }
21587/// <summary>
21588/// Queries information about the targets supported by a project
21589/// </summary>
21590 public UbtConfig QueryTargets(Action<QueryTargetsConfig> configurator)
21591 {
21592 configurator?.Invoke(QueryTargetsStorage);
21593 AppendSubtool(QueryTargetsStorage);
21594 return (UbtConfig) this;
21595 }
21596/// <summary>
21597/// Register all platforms (and in the process, configure all autosdks)
21598/// </summary>
21599 public UbtConfig SetupPlatforms(Action<SetupPlatformsConfig> configurator)
21600 {
21601 configurator?.Invoke(SetupPlatformsStorage);
21602 AppendSubtool(SetupPlatformsStorage);
21603 return (UbtConfig) this;
21604 }
21605/// <summary>
21606/// Validates the various platforms to determine if they are ready for building
21607/// </summary>
21608 public UbtConfig ValidatePlatforms(Action<ValidatePlatformsConfig> configurator)
21609 {
21610 configurator?.Invoke(ValidatePlatformsStorage);
21611 AppendSubtool(ValidatePlatformsStorage);
21612 return (UbtConfig) this;
21613 }
21614/// <summary>
21615/// Generates documentation from reflection data
21616/// </summary>
21617 public UbtConfig WriteDocumentation(Action<WriteDocumentationConfig> configurator)
21618 {
21619 configurator?.Invoke(WriteDocumentationStorage);
21620 AppendSubtool(WriteDocumentationStorage);
21621 return (UbtConfig) this;
21622 }
21623/// <summary>
21624/// Writes all metadata files at the end of a build (receipts, version files, etc...). This is implemented as a separate mode to allow it to be done as part of the action graph.
21625/// </summary>
21626 public UbtConfig WriteMetadata(Action<WriteMetadataConfig> configurator)
21627 {
21628 configurator?.Invoke(WriteMetadataStorage);
21629 AppendSubtool(WriteMetadataStorage);
21630 return (UbtConfig) this;
21631 }
21632/// <summary></summary>
21633 public UbtConfig AndroidToolChain(Action<AndroidToolChainConfig> configurator)
21634 {
21635 configurator?.Invoke(AndroidToolChainStorage);
21636 AppendSubtool(AndroidToolChainStorage);
21637 return (UbtConfig) this;
21638 }
21639/// <summary>
21640/// Android-specific target settings
21641/// </summary>
21642 public UbtConfig AndroidTargetRules(Action<AndroidTargetRulesConfig> configurator)
21643 {
21644 configurator?.Invoke(AndroidTargetRulesStorage);
21645 AppendSubtool(AndroidTargetRulesStorage);
21646 return (UbtConfig) this;
21647 }
21648/// <summary></summary>
21649 public UbtConfig UEDeployAndroid(Action<UEDeployAndroidConfig> configurator)
21650 {
21651 configurator?.Invoke(UEDeployAndroidStorage);
21652 AppendSubtool(UEDeployAndroidStorage);
21653 return (UbtConfig) this;
21654 }
21655/// <summary>
21656/// HoloLens-specific target settings
21657/// </summary>
21658 public UbtConfig HoloLensTargetRules(Action<HoloLensTargetRulesConfig> configurator)
21659 {
21660 configurator?.Invoke(HoloLensTargetRulesStorage);
21661 AppendSubtool(HoloLensTargetRulesStorage);
21662 return (UbtConfig) this;
21663 }
21664
21665 public UbtConfig IOSPostBuildSync(Action<IOSPostBuildSyncConfig> configurator)
21666 {
21667 configurator?.Invoke(IOSPostBuildSyncStorage);
21668 AppendSubtool(IOSPostBuildSyncStorage);
21669 return (UbtConfig) this;
21670 }
21671/// <summary>
21672/// IOS-specific target settings
21673/// </summary>
21674 public UbtConfig IOSTargetRules(Action<IOSTargetRulesConfig> configurator)
21675 {
21676 configurator?.Invoke(IOSTargetRulesStorage);
21677 AppendSubtool(IOSTargetRulesStorage);
21678 return (UbtConfig) this;
21679 }
21680/// <summary>
21681/// Stores project-specific IOS settings. Instances of this object are cached by IOSPlatform.
21682/// </summary>
21683 public UbtConfig IOSProjectSettings(Action<IOSProjectSettingsConfig> configurator)
21684 {
21685 configurator?.Invoke(IOSProjectSettingsStorage);
21686 AppendSubtool(IOSProjectSettingsStorage);
21687 return (UbtConfig) this;
21688 }
21689/// <summary>
21690/// Linux-specific target settings
21691/// </summary>
21692 public UbtConfig LinuxTargetRules(Action<LinuxTargetRulesConfig> configurator)
21693 {
21694 configurator?.Invoke(LinuxTargetRulesStorage);
21695 AppendSubtool(LinuxTargetRulesStorage);
21696 return (UbtConfig) this;
21697 }
21698/// <summary></summary>
21699 public UbtConfig LuminToolChain(Action<LuminToolChainConfig> configurator)
21700 {
21701 configurator?.Invoke(LuminToolChainStorage);
21702 AppendSubtool(LuminToolChainStorage);
21703 return (UbtConfig) this;
21704 }
21705/// <summary>
21706/// Lumin-specific target settings
21707/// </summary>
21708 public UbtConfig LuminTargetRules(Action<LuminTargetRulesConfig> configurator)
21709 {
21710 configurator?.Invoke(LuminTargetRulesStorage);
21711 AppendSubtool(LuminTargetRulesStorage);
21712 return (UbtConfig) this;
21713 }
21714/// <summary>
21715/// Mac-specific target settings
21716/// </summary>
21717 public UbtConfig MacTargetRules(Action<MacTargetRulesConfig> configurator)
21718 {
21719 configurator?.Invoke(MacTargetRulesStorage);
21720 AppendSubtool(MacTargetRulesStorage);
21721 return (UbtConfig) this;
21722 }
21723/// <summary>
21724/// Special mode for gathering all the messages into a single output file
21725/// </summary>
21726 public UbtConfig PVSGather(Action<PVSGatherConfig> configurator)
21727 {
21728 configurator?.Invoke(PVSGatherStorage);
21729 AppendSubtool(PVSGatherStorage);
21730 return (UbtConfig) this;
21731 }
21732/// <summary>
21733/// Windows-specific target settings
21734/// </summary>
21735 public UbtConfig WindowsTargetRules(Action<WindowsTargetRulesConfig> configurator)
21736 {
21737 configurator?.Invoke(WindowsTargetRulesStorage);
21738 AppendSubtool(WindowsTargetRulesStorage);
21739 return (UbtConfig) this;
21740 }
21741/// <summary></summary>
21742 public UbtConfig RiderProjectFileGenerator(Action<RiderProjectFileGeneratorConfig> configurator)
21743 {
21744 configurator?.Invoke(RiderProjectFileGeneratorStorage);
21745 AppendSubtool(RiderProjectFileGeneratorStorage);
21746 return (UbtConfig) this;
21747 }
21748/// <summary>
21749/// Outputs information about the given target, including a module dependecy graph (in .gefx format and list of module references)
21750/// </summary>
21751 public UbtConfig Analyze(Action<AnalyzeConfig> configurator)
21752 {
21753 configurator?.Invoke(AnalyzeStorage);
21754 AppendSubtool(AnalyzeStorage);
21755 return (UbtConfig) this;
21756 }
21757/// <summary>
21758/// Aggregates clang timing information files together into one monolithic breakdown file.
21759/// </summary>
21760 public UbtConfig AggregateClangTimingInfo(Action<AggregateClangTimingInfoConfig> configurator)
21761 {
21762 configurator?.Invoke(AggregateClangTimingInfoStorage);
21763 AppendSubtool(AggregateClangTimingInfoStorage);
21764 return (UbtConfig) this;
21765 }
21766/// <summary>
21767/// Fixes the include paths found in a header and source file
21768/// </summary>
21769 public UbtConfig FixIncludePaths(Action<FixIncludePathsConfig> configurator)
21770 {
21771 configurator?.Invoke(FixIncludePathsStorage);
21772 AppendSubtool(FixIncludePathsStorage);
21773 return (UbtConfig) this;
21774 }
21775/// <summary>
21776/// Generate a clang compile_commands file for a target
21777/// </summary>
21778 public UbtConfig InlineGeneratedCpps(Action<InlineGeneratedCppsConfig> configurator)
21779 {
21780 configurator?.Invoke(InlineGeneratedCppsStorage);
21781 AppendSubtool(InlineGeneratedCppsStorage);
21782 return (UbtConfig) this;
21783 }
21784/// <summary>
21785/// Generate a clang compile_commands file for a target
21786/// </summary>
21787 public UbtConfig PrintBuildGraphInfo(Action<PrintBuildGraphInfoConfig> configurator)
21788 {
21789 configurator?.Invoke(PrintBuildGraphInfoStorage);
21790 AppendSubtool(PrintBuildGraphInfoStorage);
21791 return (UbtConfig) this;
21792 }
21793/// <summary>
21794/// Builds low level tests on one or more targets.
21795/// </summary>
21796 public UbtConfig Test(Action<TestConfig> configurator)
21797 {
21798 configurator?.Invoke(TestStorage);
21799 AppendSubtool(TestStorage);
21800 return (UbtConfig) this;
21801 }
21802/// <summary>
21803/// Global options for UBT (any modes)
21804/// </summary>
21805 public UbtConfig UhtGlobalOptions(Action<UhtGlobalOptionsConfig> configurator)
21806 {
21807 configurator?.Invoke(UhtGlobalOptionsStorage);
21808 AppendSubtool(UhtGlobalOptionsStorage);
21809 return (UbtConfig) this;
21810 }
21811/// <summary>
21812/// Invoke UHT
21813/// </summary>
21814 public UbtConfig UnrealHeaderTool(Action<UnrealHeaderToolConfig> configurator)
21815 {
21816 configurator?.Invoke(UnrealHeaderToolStorage);
21817 AppendSubtool(UnrealHeaderToolStorage);
21818 return (UbtConfig) this;
21819 }
21820/// <summary>
21821/// Profiles different unity sizes and prints out the different size and its timings
21822/// </summary>
21823 public UbtConfig IWYU(Action<IWYUConfig> configurator)
21824 {
21825 configurator?.Invoke(IWYUStorage);
21826 AppendSubtool(IWYUStorage);
21827 return (UbtConfig) this;
21828 }
21829/// <summary>
21830/// Profiles different unity sizes and prints out the different size and its timings
21831/// </summary>
21832 public UbtConfig ProfileUnitySizes(Action<ProfileUnitySizesConfig> configurator)
21833 {
21834 configurator?.Invoke(ProfileUnitySizesStorage);
21835 AppendSubtool(ProfileUnitySizesStorage);
21836 return (UbtConfig) this;
21837 }
21838
21839 public UbtConfig Server(Action<ServerConfig> configurator)
21840 {
21841 configurator?.Invoke(ServerStorage);
21842 AppendSubtool(ServerStorage);
21843 return (UbtConfig) this;
21844 }
21845/// <summary></summary>
21846 public UbtConfig VSCodeProjectFileGenerator(Action<VSCodeProjectFileGeneratorConfig> configurator)
21847 {
21848 configurator?.Invoke(VSCodeProjectFileGeneratorStorage);
21849 AppendSubtool(VSCodeProjectFileGeneratorStorage);
21850 return (UbtConfig) this;
21851 }
21852
21853 public UbtConfig ClRepro(Action<ClReproConfig> configurator)
21854 {
21855 configurator?.Invoke(ClReproStorage);
21856 AppendSubtool(ClReproStorage);
21857 return (UbtConfig) this;
21858 }
21859
21860 public UbtConfig Query(Action<QueryConfig> configurator)
21861 {
21862 configurator?.Invoke(QueryStorage);
21863 AppendSubtool(QueryStorage);
21864 return (UbtConfig) this;
21865 }
21866
21867 public UbtConfig ApplePostBuildSync(Action<ApplePostBuildSyncConfig> configurator)
21868 {
21869 configurator?.Invoke(ApplePostBuildSyncStorage);
21870 AppendSubtool(ApplePostBuildSyncStorage);
21871 return (UbtConfig) this;
21872 }
21873/// <summary>
21874/// Helper class to manage the action queue
21875///
21876/// Running the queue can be done with a mixture of automatic and manual runners. Runners are responsible for performing
21877/// the work associated with an action. Automatic runners will have actions automatically queued to them up to the point
21878/// that any runtime limits aren't exceeded (such as maximum number of concurrent processes). Manual runners must have
21879/// jobs queued to them by calling TryStartOneAction or StartManyActions with the runner specified.
21880///
21881/// For example:
21882///
21883/// ParallelExecutor uses an automatic runner exclusively.
21884/// UBAExecutor uses an automatic runner to run jobs locally and a manual runner to run jobs remotely as processes
21885/// become available.
21886/// </summary>
21887 public UbtConfig ImmediateActionQueue(Action<ImmediateActionQueueConfig> configurator)
21888 {
21889 configurator?.Invoke(ImmediateActionQueueStorage);
21890 AppendSubtool(ImmediateActionQueueStorage);
21891 return (UbtConfig) this;
21892 }
21893/// <summary>
21894/// Configuration for Unreal Build Accelerator
21895/// </summary>
21896 public UbtConfig UnrealBuildAcceleratorConfig(Action<UnrealBuildAcceleratorConfigConfig> configurator)
21897 {
21898 configurator?.Invoke(UnrealBuildAcceleratorConfigStorage);
21899 AppendSubtool(UnrealBuildAcceleratorConfigStorage);
21900 return (UbtConfig) this;
21901 }
21902/// <summary>
21903/// Configuration for Unreal Build Accelerator Horde session
21904/// </summary>
21905 public UbtConfig UnrealBuildAcceleratorHordeConfig(Action<UnrealBuildAcceleratorHordeConfigConfig> configurator)
21906 {
21907 configurator?.Invoke(UnrealBuildAcceleratorHordeConfigStorage);
21908 AppendSubtool(UnrealBuildAcceleratorHordeConfigStorage);
21909 return (UbtConfig) this;
21910 }
21911/// <summary>
21912/// Identifies plugins with python requirements and attempts to install all dependencies using pip.
21913/// </summary>
21914 public UbtConfig PipInstall(Action<PipInstallConfig> configurator)
21915 {
21916 configurator?.Invoke(PipInstallStorage);
21917 AppendSubtool(PipInstallStorage);
21918 return (UbtConfig) this;
21919 }
21920/// <summary></summary>
21921 public UbtConfig VSWorkspaceProjectFileGenerator(Action<VSWorkspaceProjectFileGeneratorConfig> configurator)
21922 {
21923 configurator?.Invoke(VSWorkspaceProjectFileGeneratorStorage);
21924 AppendSubtool(VSWorkspaceProjectFileGeneratorStorage);
21925 return (UbtConfig) this;
21926 }
21927/// <summary>
21928/// Container class used for C++ compiler warning settings.
21929/// </summary>
21930 public UbtConfig CppCompileWarnings(Action<CppCompileWarningsConfig> configurator)
21931 {
21932 configurator?.Invoke(CppCompileWarningsStorage);
21933 AppendSubtool(CppCompileWarningsStorage);
21934 return (UbtConfig) this;
21935 }
21936/// <summary>
21937/// Configuration for Unreal Build Accelerator
21938/// </summary>
21939 public UbtConfig UnrealBuildAcceleratorCacheConfig(Action<UnrealBuildAcceleratorCacheConfigConfig> configurator)
21940 {
21941 configurator?.Invoke(UnrealBuildAcceleratorCacheConfigStorage);
21942 AppendSubtool(UnrealBuildAcceleratorCacheConfigStorage);
21943 return (UbtConfig) this;
21944 }
21945/// <summary>
21946/// Apple-specific target settings
21947/// </summary>
21948 public UbtConfig AppleTargetRules(Action<AppleTargetRulesConfig> configurator)
21949 {
21950 configurator?.Invoke(AppleTargetRulesStorage);
21951 AppendSubtool(AppleTargetRulesStorage);
21952 return (UbtConfig) this;
21953 }
21954}
The base class for generated strongly typed tool configurators providing base functionalities like ar...
Definition ToolConfig.cs:16
Aggregates clang timing information files together into one monolithic breakdown file.
Aggregates parsed Visual C++ timing information files together into one monolithic breakdown file.
Outputs information about the given target, including a module dependecy graph (in ....
virtual AndroidTargetRulesConfig GPUArchitectures(params object[] values)
Lists GPU Architectures that you want to build (mostly used for mobile etc.)
virtual AndroidTargetRulesConfig EnableMinUBSan(bool? val=null)
Enables minimal undefined behavior sanitizer (UBSan)
virtual AndroidTargetRulesConfig EnableHWASan(bool? val=null)
Enables HW address sanitizer (HWASan)
virtual AndroidTargetRulesConfig EnableASan(bool? val=null)
Enables address sanitizer (ASan) Enables address sanitizer (ASan). Enables address sanitizer (ASan)....
virtual AndroidTargetRulesConfig EnableUBSan(bool? val=null)
Enables undefined behavior sanitizer (UBSan) Enables undefined behavior sanitizer (UBSan).
virtual AndroidTargetRulesConfig Architectures(params object[] values)
Lists Architectures that you want to build.
virtual AndroidToolChainConfig Architectures(params object[] values)
Lists Architectures that you want to build.
virtual ApplePostBuildSyncConfig Input(object val=null)
REQUIRED!
virtual AppleTargetRulesConfig Skipclangvalidation(bool present=true)
Disables clang build verification checks on static libraries.
virtual AppleTargetRulesConfig EnableTSan(bool? val=null)
Enables thread sanitizer (TSan).
virtual AppleTargetRulesConfig Stripsymbols(bool present=true)
Whether to strip symbols or not (implied by Shipping config).
virtual AppleTargetRulesConfig EnableUBSan(bool? val=null)
Enables undefined behavior sanitizer (UBSan).
virtual AppleTargetRulesConfig Createstripflagfile(bool present=true)
Whether to create a ".stripped" file when stripping symbols or not.
virtual AppleTargetRulesConfig EnableASan(bool? val=null)
Enables address sanitizer (ASan).
virtual BuildConfig IgnoreJunk(bool? val=null)
Whether to skip checking for files identified by the junk manifest.
virtual BuildConfig XGEExport(bool? val=null)
Whether we should just export the XGE XML and pretend it succeeded.
virtual BuildConfig ActionTypeFilter(object val=null)
If specified, then only this type of action will execute.
virtual BuildConfig WriteOutdatedActions(object val=null)
Whether we should just export the outdated actions list.
virtual BuildConfig SkipBuild(bool? val=null)
Skip building; just do setup and terminate.
virtual BuildConfig NoEngineChanges(bool? val=null)
Do not allow any engine files to be output (used by compile on startup functionality)
virtual BuildConfig SkipPreBuildTargets(bool? val=null)
Skip pre build targets; just do the main target.
virtual BuildConfig SaveCrashDumps(object val=null)
An optional directory to copy crash dump files into.
Global settings for building. Should not contain any target-specific settings.
virtual BuildConfigurationConfig NoBuildUHT(bool? val=null)
If true, do not build UHT, assume it is already built.
virtual BuildConfigurationConfig ArtifactDirectory(object val=null)
Location to store the artifacts.
virtual BuildConfigurationConfig LogArtifactCacheMisses(bool present=true)
If true, log all artifact cache misses as informational messages.
virtual BuildConfigurationConfig AllCores(bool? val=null)
Consider logical cores when determining how many total cpu cores are available.
virtual BuildConfigurationConfig FailIfGeneratedCodeChanges(bool? val=null)
If true, fail if any of the generated header files is out of date. Consider any changes to output fil...
virtual BuildConfigurationConfig NoUBA(bool present=true)
Whether the UnrealBuildAccelerator executor will be used.
virtual BuildConfigurationConfig NoFASTBuild(bool present=true)
Whether FASTBuild may be used. Whether FASTBuild may be used if available, default is true.
virtual BuildConfigurationConfig NoSNDBS(bool present=true)
Whether SN-DBS may be used. Whether SN-DBS may be used if available, default is true.
virtual BuildConfigurationConfig HordeCompute(bool present=true)
Whether Horde remote compute may be used. Highly experimental, disabled by default.
virtual BuildConfigurationConfig NoXGE(bool present=true)
Whether XGE may be used. Whether XGE may be used if available, default is true.
virtual BuildConfigurationConfig ForceHeaderGeneration(bool? val=null)
If true, force header regeneration. Intended for the build machine.
virtual BuildConfigurationConfig UsePrecompiled(bool? val=null)
Use existing static libraries for all engine modules in this target.
virtual BuildConfigurationConfig CompactOutput(bool? val=null)
Instruct the executor to write compact output e.g. only errors, if supported by the executor....
virtual BuildConfigurationConfig ArtifactWrites(bool present=true)
If set, artifacts will be written.
virtual BuildConfigurationConfig UBA(bool present=true)
Whether the UnrealBuildAccelerator executor will be used.
virtual BuildConfigurationConfig MaxParallelActions(double? val=null)
Number of actions that can be executed in parallel. If 0 then code will pick a default based on the n...
virtual BuildConfigurationConfig NoUBTMakefiles(bool present=true)
Enables support for very fast iterative builds by caching target data. Turning this on causes Unreal ...
virtual BuildConfigurationConfig NoArtifactWrites(bool present=true)
If set, artifacts will be written.
virtual BuildConfigurationConfig NoArtifactReads(bool present=true)
If set, artifacts will be read.
virtual BuildConfigurationConfig ArtifactReads(bool present=true)
If set, artifacts will be read.
virtual BuildConfigurationConfig SkipRulesCompile(bool? val=null)
Whether to skip compiling rules assemblies and just assume they are valid.
virtual BuildConfigurationConfig ForceRulesCompile(bool? val=null)
Whether to force compiling rules assemblies, regardless of whether they are valid.
virtual BuildConfigurationConfig UBALocal(bool present=true)
Whether the UnrealBuildAccelerator (local only) executor will be used.
virtual BuildConfigurationConfig IgnoreInvalidFiles(bool? val=null)
When single file targets are specified, via -File=, -SingleFile=, or -FileList= If this option is set...
virtual BuildConfigurationConfig NoUBALocal(bool present=true)
Whether the UnrealBuildAccelerator (local only) executor will be used.
virtual BuildConfigurationConfig NoHotReloadFromIDE(bool present=true)
True if hot-reload from IDE is allowed.
virtual BuildConfigurationConfig PrintDebugInfo(bool present=true)
Whether debug info should be written to the console.
virtual ClReproConfig OutputDir(object val=null)
REQUIRED!
virtual ClReproConfig InputCpp(object val=null)
REQUIRED!
Cleans build products and intermediates for the target. This deletes files which are named consistent...
virtual CleanConfig SkipRulesCompile(bool? val=null)
Whether to avoid cleaning targets.
virtual CleanConfig SkipPreBuildTargets(bool? val=null)
Skip pre build targets; just do the main target.
Container class used for C++ compiler warning settings.
virtual CppCompileWarningsConfig ModuleIncludePathWarningLevel(WarningLevel? val=null)
How to treat general module include path validation messages.
virtual CppCompileWarningsConfig UndefinedIdentifierWarningLevel(WarningLevel? val=null)
Indicates what warning/error level to treat undefined identifiers in conditional expressions....
virtual CppCompileWarningsConfig ModuleUnsupportedWarningLevel(WarningLevel? val=null)
How to treat module unsupported validation messages.
virtual CppCompileWarningsConfig PluginModuleUnsupportedWarningLevel(WarningLevel? val=null)
How to treat plugin specific module unsupported validation messages.
virtual CppCompileWarningsConfig ShadowVariableErrors(WarningLevel? val=null)
Forces shadow variable warnings to be treated as errors on platforms that support it....
virtual CppCompileWarningsConfig SwitchUnhandledEnumeratorWarningLevel(WarningLevel? val=null)
Indicates what warning/error level to treat unhandled enumerators in switches on enumeration-typed va...
virtual CppCompileWarningsConfig PCHPerformanceIssueWarningLevel(WarningLevel? val=null)
Indicates what warning/error level to treat potential PCH performance issues.
virtual CppCompileWarningsConfig ModuleIncludeSubdirectoryWarningLevel(WarningLevel? val=null)
How to treat unnecessary module sub-directory include path validation messages.
virtual CppCompileWarningsConfig ModuleIncludePrivateWarningLevel(WarningLevel? val=null)
How to treat private module include path validation messages, where a module is adding an include pat...
Invokes the deployment handler for a target.
virtual DeployConfig Receipt(object val=null)
If we are just running the deployment step, specifies the path to the given deployment settings REQUI...
virtual ExecuteConfig Actions(object val=null)
Whether we should just export the outdated actions list REQUIRED!
Fixes the include paths found in a header and source file.
virtual FixIncludePathsConfig IncludeFilter(params object[] values)
Set of filters for #include'd lines to allow updating. Relative to the root directory,...
virtual FixIncludePathsConfig ForceUpdate(bool? val=null)
Forces updating and sorting the includes.
virtual FixIncludePathsConfig NoOutput(bool? val=null)
Flags that the updated files shouldn't be saved.
virtual FixIncludePathsConfig Filter(params object[] values)
Set of filters for files to include in the database. Relative to the root directory,...
virtual FixIncludePathsConfig CheckoutWithP4(bool? val=null)
Flags that this task should use p4 to check out the file before updating it.
virtual FixIncludePathsConfig NoIncludeSorting(bool? val=null)
Flags that includes should not be sorted.
Generate a clang compile_commands file for a target.
virtual GenerateClangDatabaseConfig OutputFilename(object val=null)
Optionally override the output filename for handling multiple targets.
virtual GenerateClangDatabaseConfig Filter(params object[] values)
Set of filters for files to include in the database. Relative to the root directory,...
virtual GenerateClangDatabaseConfig Exclude(params object[] values)
Optional set of source files to exclude from the compile database. Relative to the root directory,...
virtual GenerateClangDatabaseConfig Include(params object[] values)
Optional set of source files to include in the compile database. If this is empty,...
virtual GenerateClangDatabaseConfig NoExecCodeGenActions(bool present=true)
Execute any actions which result in code generation (eg. ISPC compilation)
virtual GenerateClangDatabaseConfig OutputDir(object val=null)
Optionally overrite the output directory for the compile_commands file.
virtual GenerateClangDatabaseConfig ExecCodeGenActions(bool? val=null)
Execute any actions which result in code generation (eg. ISPC compilation)
Generates project files for one or more projects.
virtual GenerateProjectFilesConfig VSMac(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig Automated(bool? val=null)
Whether this command is being run in an automated mode.
virtual GenerateProjectFilesConfig QMakefile(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig _2013unsupported(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig KDevelopfile(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig EddieProjectFiles(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig ProjectFileFormat(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig _2015(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig VSWorkspace(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig _2012unsupported(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig CMakefile(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig AndroidStudio(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig CodeLiteFiles(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig Makefile(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig VSCode(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig _2019(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig XCodeProjectFiles(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig CLion(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig Rider(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig _2017(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig _2022(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GenerateProjectFilesConfig VisualStudio(params ProjectFileFormat[] values)
Types of project files to generate.
virtual GlobalOptionsConfig ProjectFiles(bool present=true)
The mode to execute Generate project files based on IDE preference. Equivalent to -Mode=GenerateProje...
virtual GlobalOptionsConfig EdditProjectFiles(bool present=true)
The mode to execute.
virtual GlobalOptionsConfig Verbose(bool present=true)
The amount of detail to write to the log Increase output verbosity.
virtual GlobalOptionsConfig Clean(bool present=true)
The mode to execute Clean build products. Equivalent to -Mode=Clean.
virtual GlobalOptionsConfig XCodeProjectFiles(bool present=true)
The mode to execute Generate project files for XCode.
virtual GlobalOptionsConfig AndroidStudio(bool present=true)
The mode to execute Generate project files for Android Studio.
virtual GlobalOptionsConfig VeryVerbose(bool present=true)
The amount of detail to write to the log Increase output verbosity more.
virtual GlobalOptionsConfig NoMutex(bool? val=null)
Whether to ignore the mutex Allow more than one instance of the program to run at once.
virtual GlobalOptionsConfig EddieProjectFiles(bool present=true)
The mode to execute Generate project files for Eddie.
virtual GlobalOptionsConfig CodeliteFiles(bool present=true)
The mode to execute Generate project files for Codelite.
virtual GlobalOptionsConfig ProjectFileFormat(bool present=true)
The mode to execute Generate project files in specified format. May be used multiple times.
virtual GlobalOptionsConfig Progress(bool? val=null)
Whether to write progress markup in a format that can be parsed by other programs Write progress mess...
virtual GlobalOptionsConfig WaitMutex(bool? val=null)
Whether to wait for the mutex rather than aborting immediately Wait for another instance to finish an...
virtual GlobalOptionsConfig VSCode(bool present=true)
The mode to execute Generate project files for Visual Studio Code.
virtual GlobalOptionsConfig CLion(bool present=true)
The mode to execute Generate project files for CLion.
virtual GlobalOptionsConfig Session(object val=null)
Session identifier for this run of UBT, if unset defaults to a random Guid.
virtual GlobalOptionsConfig TelemetryProvider(params object[] values)
Additional command line providers to load opt-in telemetry connection information from ini....
virtual GlobalOptionsConfig KDevelopfile(bool present=true)
The mode to execute Generate project files for KDevelop.
virtual GlobalOptionsConfig TraceWrites(object val=null)
Log all attempts to write to the specified file Trace writes requested to the specified file.
virtual GlobalOptionsConfig RemoteIni(object val=null)
Whether to wait for the mutex rather than aborting immediately Remote tool ini directory.
virtual GlobalOptionsConfig Log(object val=null)
Specifies the path to a log file to write. Note that the default mode (eg. building,...
virtual GlobalOptionsConfig QMakefile(bool present=true)
The mode to execute Generate project files for QMake.
virtual GlobalOptionsConfig FromMsBuild(bool? val=null)
Whether to format messages in MsBuild format Format messages for msbuild Whether UBT is invoked from ...
virtual GlobalOptionsConfig CMakefile(bool present=true)
The mode to execute Generate project files for CMake.
virtual GlobalOptionsConfig VSMac(bool present=true)
The mode to execute Generate project files for Visual Studio Mac.
virtual GlobalOptionsConfig Makefile(bool present=true)
The mode to execute Generate Linux Makefile Generate Makefile.
virtual GlobalOptionsConfig Mode(object val=null)
The mode to execute.
virtual GlobalOptionsConfig SuppressSDKWarnings(bool? val=null)
Whether or not to suppress warnings of missing SDKs from warnings to LogEventType....
virtual GlobalOptionsConfig Timestamps(bool? val=null)
Whether to include timestamps in the log Include timestamps in the log.
virtual GlobalOptionsConfig Rider(bool present=true)
The mode to execute Generate project files for Rider.
virtual HoloLensTargetRulesConfig _2015(bool present=true)
Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a speci...
virtual HoloLensTargetRulesConfig _2017(WindowsCompiler? val=null)
Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a speci...
virtual HoloLensTargetRulesConfig _2019(WindowsCompiler? val=null)
Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a speci...
virtual HoloLensTargetRulesConfig _2022(WindowsCompiler? val=null)
Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a speci...
virtual IOSPostBuildSyncConfig Input(object val=null)
REQUIRED!
Stores project-specific IOS settings. Instances of this object are cached by IOSPlatform.
virtual IOSProjectSettingsConfig BuildAsFramework(bool? val=null)
Whether to build the iOS project as a framework.
virtual IOSProjectSettingsConfig Generatedsymfile(bool? val=null)
Whether to generate a dSYM file or not.
virtual IOSProjectSettingsConfig Generatedsymbundle(bool? val=null)
Whether to generate a dSYM bundle (as opposed to single file dSYM)
virtual IOSTargetRulesConfig EnableTSan(bool? val=null)
Enables thread sanitizer (TSan) Enables thread sanitizer (TSan).
virtual IOSTargetRulesConfig EnableUBSan(bool? val=null)
Enables undefined behavior sanitizer (UBSan)
virtual IOSTargetRulesConfig ImportCertificate(object val=null)
Imports the given certificate (inc private key) into a temporary keychain before signing.
virtual IOSTargetRulesConfig EnableDSYM(bool present=true)
Don't generate crashlytics data Enables the generation of .dsym files. This can be disabled to enable...
virtual IOSTargetRulesConfig ImportCertificatePassword(object val=null)
Password for the imported certificate.
virtual IOSTargetRulesConfig CreateStub(bool present=true)
If true, then a stub IPA will be generated when compiling is done (minimal files needed for a valid I...
virtual IOSTargetRulesConfig Skipcrashlytics(bool? val=null)
Don't generate crashlytics data.
virtual IOSTargetRulesConfig Skipclangvalidation(bool present=true)
Disables clang build verification checks on static libraries.
virtual IOSTargetRulesConfig EnableASan(bool? val=null)
Enables address sanitizer (ASan)
virtual IOSTargetRulesConfig ImportProvision(object val=null)
Manual override for the provision to use. Should be a full path.
virtual IOSTargetRulesConfig Alwaysgeneratedsym(bool present=true)
Don't generate crashlytics data.
virtual IOSTargetRulesConfig Distribution(bool? val=null)
Mark the build for distribution If -distribution was passed on the commandline, this build is for dis...
virtual IOSTargetRulesConfig Stripsymbols(bool present=true)
Whether to strip iOS symbols or not (implied by Shipping config). Whether to strip symbols or not (im...
Profiles different unity sizes and prints out the different size and its timings.
virtual IWYUConfig NoP4(bool? val=null)
Will check out files from p4 and write to disk.
virtual IWYUConfig UpdateDependents(bool? val=null)
Also update modules that are depending on the module we are updating.
virtual IWYUConfig PathToUpdateFile(object val=null)
Same as PathToUpdate but provide the list of paths in a text file instead. Add all the desired paths ...
virtual IWYUConfig IgnoreUpToDateCheck(bool? val=null)
Will ignore update check that .iwyu is newer than source files.
virtual IWYUConfig NoCompile(bool? val=null)
Will skip compiling before updating. Handle with care, this is dangerous since files might not match ...
virtual IWYUConfig PathToUpdate(object val=null)
Which directory to run IWYU on. Will search for modules that has module directory matching this strin...
virtual IWYUConfig ReadToc(bool? val=null)
For Development only - Will read a toc to find all .iwyu files instead of building the code.
virtual IWYUConfig Write(bool? val=null)
Will check out files from p4 and write to disk.
virtual IWYUConfig UpdateOnlyPrivate(bool? val=null)
Update only includes in cpp files and don't touch headers.
virtual IWYUConfig NoTransitiveIncludes(bool? val=null)
Allow files to not add includes if they are transitively included by other includes.
virtual IWYUConfig DeprecateTag(object val=null)
If set, this will keep removed includes in #if/#endif scope at the end of updated file....
virtual IWYUConfig NoTransitive(bool? val=null)
Allow files to not add includes if they are transitively included by other includes.
virtual IWYUConfig Compare(bool? val=null)
Compare current include structure with how it would look like if iwyu was applied on all files.
virtual IWYUConfig RemoveRedundant(bool? val=null)
Will remove headers that are needed but redundant because they are included through other needed incl...
virtual IWYUConfig WriteToc(bool? val=null)
For Development only - Will write a toc referencing all .iwyu files. Toc can be used by -ReadToc.
virtual IWYUConfig ModuleToUpdate(object val=null)
Which module to run IWYU on. Will also include all modules depending on this module.
virtual ImmediateActionQueueConfig ActionStallReportTime(double? val=null)
Number of second of no completed actions to trigger an action stall report. If zero,...
virtual ImmediateActionQueueConfig ActionStallTerminateTime(double? val=null)
Number of second of no completed actions to trigger to terminate the queue. If zero,...
Generate a clang compile_commands file for a target.
virtual InlineGeneratedCppsConfig CheckoutWithP4(bool? val=null)
Flags that this task should use p4 to check out the file before updating it.
virtual InlineGeneratedCppsConfig NoOutput(bool? val=null)
Flags that the updated files shouldn't be saved.
virtual InlineGeneratedCppsConfig Filter(params object[] values)
Set of filters for files to include in the database. Relative to the root directory,...
virtual JsonExportConfig ExecCodeGenActions(bool? val=null)
Execute any actions which result in code generation (eg. ISPC compilation)
virtual LinuxTargetRulesConfig EnableLLDB(bool? val=null)
Turns on tuning of debug info for LLDB.
virtual LinuxTargetRulesConfig ThinLTO(bool? val=null)
Enables "thin" LTO When Link Time Code Generation (LTCG) is enabled, whether to prefer using the ligh...
virtual LinuxTargetRulesConfig NoDumpSyms(bool? val=null)
Whether to globally disable calling dump_syms.
virtual LinuxTargetRulesConfig EnableTSan(bool? val=null)
Enables thread sanitizer (TSan) Enables thread sanitizer (TSan).
virtual LinuxTargetRulesConfig EnableLibFuzzer(bool? val=null)
Enables LibFuzzer Enables LibFuzzer. Enables LibFuzzer. Only supported for Visual Studio 2022 17....
virtual LinuxTargetRulesConfig EnableASan(bool? val=null)
Enables address sanitizer (ASan) Enables address sanitizer (ASan). Enables address sanitizer (ASan)....
virtual LinuxTargetRulesConfig EnableMSan(bool? val=null)
Enables memory sanitizer (MSan)
virtual LinuxTargetRulesConfig EnableUBSan(bool? val=null)
Enables undefined behavior sanitizer (UBSan) Enables undefined behavior sanitizer (UBSan).
virtual LinuxTargetRulesConfig NoStripSymbols(bool? val=null)
Whether to globally skip symbol stripping.
virtual LuminTargetRulesConfig Distribution(bool? val=null)
If -distribution was passed on the commandline, this build is for distribution.
virtual LuminTargetRulesConfig GPUArchitectures(params object[] values)
Lists GPU Architectures that you want to build (mostly used for mobile etc.)
virtual MacTargetRulesConfig EnableUBSan(bool? val=null)
Enables undefined behavior sanitizer (UBSan).
virtual MacTargetRulesConfig EnableLibFuzzer(bool? val=null)
Enables LibFuzzer.
virtual MacTargetRulesConfig EnableTSan(bool? val=null)
Enables thread sanitizer (TSan).
virtual MacTargetRulesConfig NoDSYM(bool present=true)
Enables the generation of .dsym files. This can be disabled to enable faster iteration times during d...
virtual MacTargetRulesConfig EnableASan(bool? val=null)
Enables address sanitizer (ASan).
virtual MacTargetRulesConfig EnableDSYM(bool present=true)
Enables the generation of .dsym files. This can be disabled to enable faster iteration times during d...
virtual MacTargetRulesConfig Skipclangvalidation(bool present=true)
Disables clang build verification checks on static libraries.
Special mode for gathering all the messages into a single output file.
virtual PVSGatherConfig PrintLevel(double? val=null)
The maximum level of warnings to print.
virtual PVSGatherConfig AnalyzerVersion(object val=null)
Version of the analyzers.
virtual PVSGatherConfig Output(object val=null)
Output file to generate REQUIRED!
virtual PVSGatherConfig Input(object val=null)
Path to the input file list REQUIRED!
virtual PVSGatherConfig RootPaths(object val=null)
Path to file list of rootpaths,realpath mapping REQUIRED!
virtual PVSGatherConfig Ignored(object val=null)
Path to file list of paths to ignore REQUIRED!
Parses an MSVC timing info file generated from cl-filter to turn it into a form that can be used by o...
Identifies plugins with python requirements and attempts to install all dependencies using pip.
virtual PipInstallConfig PipAction(PipAction? val=null)
The action the pip install tool should implement (GenRequirements, Setup, Parse, Install,...
virtual PipInstallConfig PythonInterpreter(object val=null)
Full path to python interpreter engine was built with (if unspecified use value in PythonSDKRoot....
virtual PipInstallConfig IgnoreHashes(bool? val=null)
Disable requiring hashes in pip install requirements (NOTE: this is insecure and may simplify supply-...
virtual PipInstallConfig OverrideIndexUrl(object val=null)
Allow overriding the index url (this will also disable extra-urls) Use the specified index-url (WARNI...
virtual PipInstallConfig AllPlugins(bool? val=null)
Run pip installer on all plugins in project and engine.
Generate a clang compile_commands file for a target.
Profiles different unity sizes and prints out the different size and its timings.
virtual ProfileUnitySizesConfig Filter(params object[] values)
Set of filters for files to include in the database. Relative to the root directory,...
Queries information about the targets supported by a project.
virtual QueryTargetsConfig IncludeAllTargets(bool? val=null)
Write out all targets, even if a default is specified in the BuildSettings section of the Default*....
virtual QueryTargetsConfig IncludeParentAssembly(bool present=true)
Write all targets from parent assemblies (useful for EngineRules which can be chained)
virtual QueryTargetsConfig Project(object val=null)
Path to the project file to query.
virtual QueryTargetsConfig DontIncludeParentAssembly(bool present=true)
Write all targets from parent assemblies (useful for EngineRules which can be chained)
virtual QueryTargetsConfig Output(object val=null)
Path to the output file to receive information about the targets.
virtual RiderProjectFileGeneratorConfig Minimize(bool present=true)
Should format JSON files in human readable form, or use packed one without indents.
virtual RiderProjectFileGeneratorConfig ProjectNames(params object[] values)
Projects to generate project files for.
virtual RiderProjectFileGeneratorConfig Platforms(params object[] values)
Platforms to generate project files for.
virtual RiderProjectFileGeneratorConfig OnlyPrimaryProjectFile(bool? val=null)
When specified only primary project file (root.json) will be generated. Normally project files for sp...
virtual RiderProjectFileGeneratorConfig TargetTypes(params TargetType[] values)
Target types to generate project files for.
virtual RiderProjectFileGeneratorConfig TargetConfigurations(params UnrealTargetConfiguration[] values)
Target configurations to generate project files for.
Register all platforms (and in the process, configure all autosdks)
Describes all of the information needed to initialize a UEBuildTarget object.
virtual TargetDescriptorConfig DisableUnity(bool present=true)
Whether to unify C++ code into larger files for faster compilation.
virtual TargetDescriptorConfig LiveCoding(HotReloadMode? val=null)
Whether to perform hot reload for this target.
virtual TargetDescriptorConfig LiveCodingModules(object val=null)
Path to a file containing a list of modules that may be modified for live coding.
virtual TargetDescriptorConfig Files(params object[] values)
Relative path to file(s) to compile.
virtual TargetDescriptorConfig WorkingDir(object val=null)
Working directory when compiling with RelativePathsToSpecificFilesToCompile.
virtual TargetDescriptorConfig NoHotReload(HotReloadMode? val=null)
Whether to perform hot reload for this target.
virtual TargetDescriptorConfig BuildDependantPlugins(bool? val=null)
When building a foreign plugin, whether to build plugins it depends on as well.
virtual TargetDescriptorConfig IWYU(bool? val=null)
Enables "include what you use" mode.
virtual TargetDescriptorConfig LiveCodingLimit(double? val=null)
If a non-zero value, a live coding request will be terminated if more than the given number of action...
virtual TargetDescriptorConfig BuildPluginAsLocal(bool? val=null)
Whether we should treat the ForeignPlugin argument as a local plugin for building purposes.
virtual TargetDescriptorConfig File(params object[] values)
Individual file(s) to compile.
virtual TargetDescriptorConfig Quiet(bool? val=null)
Suppress messages about building this target.
virtual TargetDescriptorConfig LiveCodingManifest(object val=null)
Path to the manifest for passing info about the output to live coding.
virtual TargetDescriptorConfig Plugin(object val=null)
Foreign plugin to compile against this target.
virtual TargetDescriptorConfig Rebuild(bool? val=null)
Clean the target before trying to build it.
virtual TargetDescriptorConfig Module(params object[] values)
Set of module names to compile.
virtual TargetDescriptorConfig FileList(params object[] values)
Lists of files to compile.
virtual TargetDescriptorConfig ForceUnity(bool? val=null)
Whether to force C++ source files to be combined into larger files for faster compilation.
virtual TargetDescriptorConfig ForceHotReload(HotReloadMode? val=null)
Whether to perform hot reload for this target.
virtual TargetDescriptorConfig SingleFile(params object[] values)
Individual file(s) to compile.
virtual TargetDescriptorConfig WriteActions(params object[] values)
Export the actions for the target to a file.
virtual TargetDescriptorConfig SingleFileBuildDependents(bool? val=null)
Will build all files that directly include any of the files provided in -SingleFile Will build all fi...
TargetRules is a data structure that contains the rules for defining a target (application/executable...
virtual TargetRulesConfig UniqueBuildEnvironment(bool present=true)
Backing storage for the BuildEnvironment property.
virtual TargetRulesConfig NoPCHChain(bool present=true)
Whether PCHs should be chained when compiling with clang.
virtual TargetRulesConfig UseAutoRTFMVerifier(bool present=true)
Whether to enable emitting AutoRTFM verification metadata.
virtual TargetRulesConfig ThinLTODistributed(bool? val=null)
When ThinLTO is enabled we use distributed linking if supported This can save a lot of time for large...
virtual TargetRulesConfig CppStd(CppStandardVersion? val=null)
Which C++ stanard to use for compiling this target Which C++ standard to use for compiling this targe...
virtual TargetRulesConfig CppStdEngine(CppStandardVersion? val=null)
Which C++ standard to use for compiling this target (for engine modules)
virtual TargetRulesConfig HeaderUnits(bool? val=null)
Will replace pch with ifc and use header units instead. This is an experimental and msvc-only feature...
virtual TargetRulesConfig FlushMac(bool? val=null)
Whether to clean Builds directory on a remote Mac before building.
virtual TargetRulesConfig NoVFS(bool present=true)
Experimental work in progress: Set flags to use toolchain virtual file system support,...
virtual TargetRulesConfig DebugInfoLineTablesOnlyModules(params object[] values)
Modules that should emit line number tables instead of full debug information for compilers that supp...
virtual TargetRulesConfig BinariesSubfolder(object val=null)
Subfolder to place executables in, relative to the default location.
virtual TargetRulesConfig Formal(bool? val=null)
Indicates that this is a formal build, intended for distribution. This flag is automatically set to t...
virtual TargetRulesConfig MergeModulesReport(bool? val=null)
Experimental: Whether to report module merging data to the game target.
virtual TargetRulesConfig PreprocessDepends(bool? val=null)
Generate dependency files by preprocessing. This is only recommended when distributing builds as it a...
virtual TargetRulesConfig AdditionalPlugins(params object[] values)
A list of additional plugins which need to be included in this target. This allows referencing non-op...
virtual TargetRulesConfig SupportEditAndContinue(bool? val=null)
Whether to support edit and continue.
virtual TargetRulesConfig Modular(bool present=true)
Backing storage for the LinkType property.
virtual TargetRulesConfig ModuleIncludeSubdirectoryWarningLevel(WarningLevel? val=null)
How to treat unnecessary module sub-directory include path validation messages.
virtual TargetRulesConfig DetailedUnityFiles(bool present=true)
Whether to add additional information to the unity files, such as '_of_X' in the file name....
virtual TargetRulesConfig MinArm64CpuTarget(Arm64TargetCpuType? val=null)
Select a minimum ARM64 target CPU. This will change what ARMv8(9)-A ISA + extension code will be comp...
virtual TargetRulesConfig RetainFramePointers(bool present=true)
Forces frame pointers to be retained this is usually required when you want reliable callstacks e....
virtual TargetRulesConfig NonDeterministic(bool present=true)
Set flags require for deterministic compiling and linking. Enabling deterministic mode for msvc disab...
virtual TargetRulesConfig DebugInfoLineTablesOnly(DebugInfoMode? val=null)
True if only debug line number tables should be emitted in debug information for compilers that suppo...
virtual TargetRulesConfig UseChaos(bool present=true)
Whether to use the Chaos physics interface. This overrides the physx flags to disable APEX and NvClot...
virtual TargetRulesConfig Precompile(bool? val=null)
Make static libraries for all engine modules as intermediates for this target.
virtual TargetRulesConfig HeadersOnly(bool? val=null)
When used with -IncludeHeaders, only header files will be compiled.
virtual TargetRulesConfig NoManifestChanges(bool? val=null)
Do not allow manifest changes when building this target. Used to cause earlier errors when building m...
virtual TargetRulesConfig StressTestUnity(bool? val=null)
Whether to stress test the C++ unity build robustness by including all C++ files files in a project f...
virtual TargetRulesConfig UseIris(bool present=true)
Whether to use Iris.
virtual TargetRulesConfig Rtti(bool? val=null)
Enable RTTI for all modules.
virtual TargetRulesConfig StaticAnalyzerMode(StaticAnalyzerMode? val=null)
The mode to use for the static analyzer. This is only supported for Clang. Shallow mode completes qui...
virtual TargetRulesConfig WarningsAsErrors(bool? val=null)
Whether to enable all warnings as errors. UE enables most warnings as errors already,...
virtual TargetRulesConfig IncludeHeaders(bool? val=null)
Adds header files in included modules to the build.
virtual TargetRulesConfig DisableMergingUnityFiles(bool present=true)
Whether to merge module and generated unity files for faster compilation.
virtual TargetRulesConfig NoThinLTO(bool present=true)
When Link Time Code Generation (LTCG) is enabled, whether to prefer using the lighter weight version ...
virtual TargetRulesConfig NoDebugInfo(bool? val=null)
Whether to globally disable debug info generation; see DebugInfoHeuristics.cs for per-config and per-...
virtual TargetRulesConfig DisableDebugInfoPlugins(params object[] values)
Plugins that should have debug info disabled.
virtual TargetRulesConfig NoPCH(bool present=true)
Whether PCH files should be used.
virtual TargetRulesConfig CacheSalt(object val=null)
Salt value to modify cache bucket calculation, can be used to invalidate cached actions outputs.
virtual TargetRulesConfig MapFile(bool? val=null)
Outputs a map file as part of the build.
virtual TargetRulesConfig DisableInliningGenCpps(bool? val=null)
Disable supports for inlining gen.cpps.
virtual TargetRulesConfig NoLink(bool? val=null)
Whether to disable linking for this target.
virtual TargetRulesConfig MergeModules(bool? val=null)
Experimental: Merge modular modules into combined libraries. Sets LinkType to Modular and enables bSt...
virtual TargetRulesConfig CStd(CStandardVersion? val=null)
Which C standard to use for compiling this target.
virtual TargetRulesConfig ModuleIncludePrivateWarningLevel(WarningLevel? val=null)
How to treat private module include path validation messages, where a module is adding an include pat...
virtual TargetRulesConfig SharedBuildEnvironment(bool present=true)
Backing storage for the BuildEnvironment property.
virtual TargetRulesConfig DependencyList(params object[] values)
Path to a list of dependencies for this target, when precompiling.
virtual TargetRulesConfig ToolChain(object val=null)
Allows overriding the toolchain to be created for this target. This must match the name of a class de...
virtual TargetRulesConfig CompileChaosVisualDebuggerSupport(bool? val=null)
Whether to compile in Chaos Visual Debugger (CVD) support features to record the state of the physics...
virtual TargetRulesConfig CompileAsDll(bool? val=null)
Whether this target should be compiled as a DLL. Requires LinkType to be set to TargetLinkType....
virtual TargetRulesConfig EnablePlugin(params object[] values)
Additional plugins that should be included for this target.
virtual TargetRulesConfig IncrementalLinking(bool? val=null)
Whether to use incremental linking or not. Incremental linking can yield faster iteration times when ...
virtual TargetRulesConfig Tracing(bool? val=null)
Whether to parse timing data into a tracing file compatible with chrome://tracing.
virtual TargetRulesConfig ForceDebugInfo(bool? val=null)
Whether to force debug info to be generated.
virtual TargetRulesConfig CompileIoStoreOnDemand(bool present=true)
Whether to use I/O store on-demand.
virtual TargetRulesConfig CompileChaos(bool present=true)
Whether to compile the Chaos physics plugin.
virtual TargetRulesConfig CodeCoverage(bool present=true)
Whether the target requires code coverage compilation and linking.
virtual TargetRulesConfig CustomConfig(object val=null)
Extra subdirectory to load config files out of, for making multiple types of builds with the same pla...
virtual TargetRulesConfig ThinLTO(bool? val=null)
When Link Time Code Generation (LTCG) is enabled, whether to prefer using the lighter weight version ...
virtual TargetRulesConfig NoUseVerseBPVM(bool present=true)
Whether to use the BPVM to run Verse.
virtual TargetRulesConfig PGOProfile(bool present=true)
Whether to enable Profile Guided Optimization (PGO) instrumentation in this build.
virtual TargetRulesConfig Deploy(bool? val=null)
Whether to deploy the executable after compilation on platforms that require deployment.
virtual TargetRulesConfig PackagePath(object val=null)
Package full path (directory + filename) where to store input files used at link time Normally used t...
virtual TargetRulesConfig StripExports(bool? val=null)
Experimental: Strip unused exports from libraries. Only applies when LinkType is Modular.
virtual TargetRulesConfig IWYU(bool? val=null)
Enables "include what you use" by default for modules in this target. Changes the default PCH mode fo...
virtual TargetRulesConfig Deterministic(bool? val=null)
Force set flags require for determinstic compiling and linking (experimental, may not be fully suppor...
virtual TargetRulesConfig Manifest(params object[] values)
Path to a manifest to output for this target.
virtual TargetRulesConfig OptimizationLevel(OptimizationMode? val=null)
Allows to fine tune optimizations level for speed and\or code size.
virtual TargetRulesConfig UseAutoRTFM(bool present=true)
Whether to use the AutoRTFM Clang compiler.
virtual TargetRulesConfig NoUseIris(bool present=true)
Whether to use Iris.
virtual TargetRulesConfig DebugInfoSimpleTemplateNames(DebugInfoMode? val=null)
True if template type names should be simplified to reduce the size of debug info for compilers that ...
virtual TargetRulesConfig NoUseAutoRTFM(bool present=true)
Whether to use the AutoRTFM Clang compiler. Whether to use force AutoRTFM Clang compiler off.
virtual TargetRulesConfig DebugInfo(DebugInfoMode? val=null)
How much debug info should be generated. See DebugInfoMode enum for more details.
virtual TargetRulesConfig NoRetainFramePointers(bool present=true)
Forces frame pointers to be retained this is usually required when you want reliable callstacks e....
virtual TargetRulesConfig FastMonoCalls(bool present=true)
New Monolithic Graphics drivers have optional "fast calls" replacing various D3d functions.
virtual TargetRulesConfig DisableModuleNumIncludedBytesPerUnityCPPOverride(bool present=true)
Disables overrides that are set by the module.
virtual TargetRulesConfig DebugInfoLineTablesOnlyPlugins(params object[] values)
Plugins that should emit line number tables instead of full debug information for compilers that supp...
virtual TargetRulesConfig OptionalPlugins(params object[] values)
Additional plugins that should be included for this target if they are found.
virtual TargetRulesConfig NoUseChaos(bool present=true)
Whether to use the Chaos physics interface. This overrides the physx flags to disable APEX and NvClot...
virtual TargetRulesConfig DebugInfoInlineLineTablesPlugins(params object[] values)
Modules that should include line number tables for inline functions for compilers that support doing ...
virtual TargetRulesConfig LTCG(bool? val=null)
Whether to allow the use of link time code generation (LTCG).
virtual TargetRulesConfig DebugInfoSimpleTemplateNamesModules(params object[] values)
Modules for which template type names should be simplified to reduce the size of debug info for compi...
virtual TargetRulesConfig DebugInfoSimpleTemplateNamesPlugins(params object[] values)
Plugins for which template type names should be simplified to reduce the size of debug info for compi...
virtual TargetRulesConfig ForceUnity(bool? val=null)
Whether to force C++ source files to be combined into larger files for faster compilation.
virtual TargetRulesConfig UseVerse(bool present=true)
Whether to use the verse script interface.
virtual TargetRulesConfig Monolithic(bool present=true)
Backing storage for the LinkType property.
virtual TargetRulesConfig StaticAnalyzerIncludeGenerated(bool? val=null)
When enabled, generated source files will be analyzed.
virtual TargetRulesConfig ForceIncludeOrder(EngineIncludeOrderVersion? val=null)
Force the include order to a specific version. Overrides any Target and Module rules.
virtual TargetRulesConfig StaticAnalyzerOutputType(StaticAnalyzerOutputType? val=null)
The output type to use for the static analyzer. This is only supported for Clang.
virtual TargetRulesConfig SkipDeploy(bool? val=null)
Whether to force skipping deployment for platforms that require deployment by default.
virtual TargetRulesConfig MergePluginsIgnored(params object[] values)
Experimental: List of plugins (and their dependencies) to ignore when processing merged libraries....
virtual TargetRulesConfig UseVerseBPVM(bool present=true)
Whether to use the BPVM to run Verse.
virtual TargetRulesConfig Define(params object[] values)
Macros to define globally across the whole target.
virtual TargetRulesConfig DisableDebugInfoModules(params object[] values)
Modules that should have debug info disabled.
virtual TargetRulesConfig CrashDiagnosticDirectory(object val=null)
Directory where to put crash report files for platforms that support it.
virtual TargetRulesConfig ProjectDefine(params object[] values)
Macros to define across all macros in the project.
virtual TargetRulesConfig ShadowVariableErrors(WarningLevel? val=null)
Forces shadow variable warnings to be treated as errors on platforms that support it....
virtual TargetRulesConfig AllModules(bool? val=null)
Build all the modules that are valid for this target type. Used for CIS and making installed engine b...
virtual TargetRulesConfig OverrideBuildEnvironment(bool? val=null)
Whether to ignore violations to the shared build environment (eg. editor targets modifying definition...
virtual TargetRulesConfig Pie(bool? val=null)
Enable Position Independent Executable (PIE). Has an overhead cost.
virtual TargetRulesConfig BytesPerUnityCPP(double? val=null)
An approximate number of bytes of C++ code to target for inclusion in a single unified C++ file.
virtual TargetRulesConfig CompilerArguments(object val=null)
Additional arguments to pass to the compiler.
virtual TargetRulesConfig AutoRTFMVerify(bool present=true)
Whether to run LLVM verification after the AutoRTFM compiler pass. This is used by our compiler folks...
virtual TargetRulesConfig FastPDB(bool? val=null)
Whether to use the :FASTLINK option when building with /DEBUG to create local PDBs on Windows....
virtual TargetRulesConfig BuildPlugin(params object[] values)
Additional plugins that are built for this target type but not enabled.
virtual TargetRulesConfig NoFastMonoCalls(bool present=true)
New Monolithic Graphics drivers have optional "fast calls" replacing various D3d functions.
virtual TargetRulesConfig PGOOptimize(bool present=true)
Whether to optimize this build with Profile Guided Optimization (PGO).
virtual TargetRulesConfig PCHPerformanceIssueWarningLevel(WarningLevel? val=null)
Indicates what warning/error level to treat potential PCH performance issues.
virtual TargetRulesConfig DebugInfoInlineLineTablesModules(params object[] values)
Modules that should include line number tables for inline functions for compilers that support doing ...
virtual TargetRulesConfig IWYUHeadersOnly(bool? val=null)
Tells "include what you use" to only compile header files.
virtual TargetRulesConfig ThinLTOCachePruningArguments(object val=null)
Arguments that will be applied to prune the ThinLTO cache on supported platforms. Arguments will only...
virtual TargetRulesConfig PublicSymbolsByDefault(bool? val=null)
Whether to expose all symbols as public by default on POSIX platforms.
virtual TargetRulesConfig MergePlugins(params object[] values)
Experimental: List of plugins (and their dependencies) to each merge into separate libraries....
virtual TargetRulesConfig StackProtect(bool? val=null)
Enable Stack Protection. Has an overhead cost.
virtual TargetRulesConfig NoDetailedUnityFiles(bool present=true)
Whether to add additional information to the unity files, such as '_of_X' in the file name....
virtual TargetRulesConfig BuildVersion(object val=null)
The build version string.
virtual TargetRulesConfig TargetNameOverride(object val=null)
Override the name used for this target.
virtual TargetRulesConfig MinCpuArchX64(MinimumCpuArchitectureX64? val=null)
Direct the compiler to generate AVX instructions wherever SSE or AVX intrinsics are used,...
virtual TargetRulesConfig StaticAnalyzerProjectOnly(bool? val=null)
Only run static analysis against project modules, skipping engine modules.
virtual TargetRulesConfig ShowIncludes(bool? val=null)
Print out files that are included by each source file.
virtual TargetRulesConfig ModuleIncludePathWarningLevel(WarningLevel? val=null)
How to treat general module include path validation messages.
virtual TargetRulesConfig VFS(bool present=true)
Experimental work in progress: Set flags to use toolchain virtual file system support,...
virtual TargetRulesConfig Preprocess(bool? val=null)
Whether to just preprocess source files for this target, and skip compilation.
virtual TargetRulesConfig NoPDB(bool present=true)
Whether PDB files should be used for Visual C++ builds.
virtual TargetRulesConfig UndefinedIdentifierWarningLevel(WarningLevel? val=null)
Indicates what warning/error level to treat undefined identifiers in conditional expressions....
virtual TargetRulesConfig DisableUnity(bool present=true)
Whether to unify C++ code into larger files for faster compilation.
virtual TargetRulesConfig FPSemantics(FPSemanticsMode? val=null)
Allows setting the FP semantics.
virtual TargetRulesConfig NoUseVerse(bool present=true)
Whether to use the verse script interface.
virtual TargetRulesConfig MergePluginsExcluded(params object[] values)
Experimental: List of plugins (and their dependencies) to explicitly exclude when processing merged l...
virtual TargetRulesConfig UBAStoreObjFilesCompressed(bool present=true)
Experimental: Store object (.obj) compressed on disk. Requires UBA to link, currently MSVC only....
virtual TargetRulesConfig WithAssembly(bool? val=null)
Whether to generate assembly data while compiling this target. Works exclusively on MSVC for now.
virtual TargetRulesConfig ThinLTOCacheDirectory(object val=null)
Directory where to put the ThinLTO cache on supported platforms.
virtual TargetRulesConfig AutoRTFMClosedStaticLinkage(bool present=true)
Whether to link closed function declarations statically.
virtual TargetRulesConfig NoCompileChaos(bool present=true)
Whether to compile the Chaos physics plugin.
virtual TargetRulesConfig MergeAdditionalCommonModules(params object[] values)
Experimental: List of modules to exclude from Engine to be placed in Common.
virtual TargetRulesConfig DisablePlugin(params object[] values)
List of plugins to be disabled for this target. Note that the project file may still reference them,...
virtual TargetRulesConfig Timing(bool? val=null)
Whether to write detailed timing info from the compiler and linker.
virtual TargetRulesConfig DisableAdaptiveUnity(bool present=true)
Use a heuristic to determine which files are currently being iterated on and exclude them from unity ...
virtual TargetRulesConfig NoSharedPCH(bool present=true)
Enables "Shared PCHs", a feature which significantly speeds up compile times by attempting to share c...
virtual TargetRulesConfig NoIncrementalLinking(bool present=true)
Whether to use incremental linking or not. Incremental linking can yield faster iteration times when ...
virtual TargetRulesConfig UsePDB(bool present=true)
Whether PDB files should be used for Visual C++ builds.
virtual TargetRulesConfig StaticAnalyzerPVSPrintLevel(double? val=null)
The level of warnings to print when analyzing using PVS-Studio.
virtual TargetRulesConfig StaticAnalyzer(StaticAnalyzer? val=null)
Whether static code analysis should be enabled. The static analyzer to use.
virtual TargetRulesConfig DebugInfoNoInlineLineTables(DebugInfoMode? val=null)
True if debug line number tables should be omitted in debug information for inline functions,...
virtual TargetRulesConfig LinkerArguments(object val=null)
Additional arguments to pass to the linker.
virtual TargetRulesConfig BundleVersion(object val=null)
Bundle version for Mac apps.
Builds low level tests on one or more targets.
virtual TestConfig CleanTests(bool? val=null)
Whether we're cleaning tests instead of just building.
virtual TestConfig RebuildTests(bool? val=null)
Whether we're rebuilding tests instead of just building.
virtual TestConfig Project(object val=null)
Specific project file to run tests on or update test metadata.
virtual TestConfig Implicit(bool? val=null)
Whether we're building implicit tests (default is explicit)
virtual TestConfig GenerateMetadata(bool? val=null)
Updates tests' build graph metadata files for explicit tests.
virtual UEDeployAndroidConfig OnlyGradleGeneration(bool present=true)
Only generates gradle.
virtual UEDeployAndroidConfig ForceAPKGeneration(bool present=true)
Ignore AppBundle (AAB) generation setting if "-ForceAPKGeneration" specified.
virtual UEDeployAndroidConfig ForceDontBundleLibrariesInAPK(bool? val=null)
Forcing bDontBundleLibrariesInAPK to "true" or "false" ignoring any other option.
virtual UEDeployAndroidConfig ScudoMemoryTracing(bool present=true)
Adds LD_PRELOAD'ed .so to capture all malloc/free/etc calls to libc.so and route them to our memory t...
virtual UEDeployAndroidConfig BypassGradlePackaging(bool present=true)
Do not use Gradle if previous APK exists and only libUnreal.so changed.
virtual UEDeployAndroidConfig FromMsBuild(bool present=true)
Whether UBT is invoked from MSBuild. If false will, disable bDontBundleLibrariesInAPK,...
virtual UEDeployAndroidConfig FastIterate(bool present=true)
Makes build interation faster.
virtual UhtGlobalOptionsConfig NoGoWide(bool? val=null)
Disable concurrent parsing and code generation.
virtual UhtGlobalOptionsConfig Verbose(bool present=true)
The amount of detail to write to the log Increase output verbosity.
virtual UhtGlobalOptionsConfig VeryVerbose(bool present=true)
The amount of detail to write to the log Increase output verbosity more.
virtual UhtGlobalOptionsConfig Test(bool? val=null)
Run testing scripts.
virtual UhtGlobalOptionsConfig NoLog(bool? val=null)
Disables all logging including the default log location Disable log file creation including the defau...
virtual UhtGlobalOptionsConfig NoDefaultExporters(bool? val=null)
Disable all default exporters. Useful for when a specific exporter is to be run.
virtual UhtGlobalOptionsConfig FromMsBuild(bool? val=null)
Whether to format messages in MsBuild format Format messages for msbuild.
virtual UhtGlobalOptionsConfig WarningsAsErrors(bool? val=null)
Treat warnings as errors.
virtual UhtGlobalOptionsConfig IncludeDebugOutput(bool? val=null)
Include extra content in generated output to assist with debugging.
virtual UhtGlobalOptionsConfig FailIfGeneratedCodeChanges(bool? val=null)
Consider any changes to output files as being an error.
virtual UhtGlobalOptionsConfig Log(object val=null)
Specifies the path to a log file to write. Note that the default mode (eg. building,...
virtual UhtGlobalOptionsConfig WriteRef(bool? val=null)
Write all the output to a reference directory.
virtual UhtGlobalOptionsConfig VerifyRef(bool? val=null)
Write all the output to a verification directory and compare to the reference output.
virtual UhtGlobalOptionsConfig NoOutput(bool? val=null)
Do not save any output files other than reference output.
virtual UhtGlobalOptionsConfig Timestamps(bool? val=null)
Whether to include timestamps in the log Include timestamps in the log.
virtual UnrealBuildAcceleratorCacheConfigConfig UBAWriteCache(bool present=true)
Set cache to write, expects one of [True, False, BuildMachineOnly].
virtual UnrealBuildAcceleratorCacheConfigConfig UBACache(object val=null)
Address of the uba cache service. Will automatically use cache if connected.
virtual UnrealBuildAcceleratorConfigConfig UBAQuic(bool present=true)
Use Quic protocol instead of Tcp (experimental)
virtual UnrealBuildAcceleratorConfigConfig UBAProviders(params object[] values)
List of provider names for remote connections from ini It is recommended to set Providers in ini so t...
virtual UnrealBuildAcceleratorConfigConfig UBACompressionLevel(object val=null)
Compression level. Options are None, SuperFast, VeryFast, Fast, Normal, Optimal1 to Optimal5.
virtual UnrealBuildAcceleratorConfigConfig UBAStoreRaw(bool? val=null)
If UBA should store cas compressed or raw.
virtual UnrealBuildAcceleratorConfigConfig UBAMaxWorkers(double? val=null)
Max number of worker threads that can handle messages from remotes.
virtual UnrealBuildAcceleratorConfigConfig UBAPort(double? val=null)
Which port UBA server should listen to for connections.
virtual UnrealBuildAcceleratorConfigConfig UBAStrict(bool? val=null)
When set to true, all errors and warnings from UBA will be output at the appropriate severity level t...
virtual UnrealBuildAcceleratorConfigConfig UBANoRetry(bool present=true)
When set to true, actions that fail locally with certain error codes will retry without uba.
virtual UnrealBuildAcceleratorConfigConfig UBANoWrite(bool present=true)
Skip writing intermediate and output files to disk. Useful for validation builds where we don't need ...
virtual UnrealBuildAcceleratorConfigConfig UBAForcedRetry(bool? val=null)
When set to true, actions that fail locally with UBA will be retried without UBA. When set to true,...
virtual UnrealBuildAcceleratorConfigConfig UBANoDetour(bool present=true)
Disable all detouring making all actions run outside uba.
virtual UnrealBuildAcceleratorConfigConfig UBASendSize(double? val=null)
Max size of each message sent from server to client.
virtual UnrealBuildAcceleratorConfigConfig UBACache(object val=null)
Address of the uba cache service. Will automatically use cache if connected.
virtual UnrealBuildAcceleratorConfigConfig UBAStoreObjFilesCompressed(bool present=true)
Store object (.obj) compressed on disk. Requires uba to do link step where it will decompress obj fil...
virtual UnrealBuildAcceleratorConfigConfig UBARootDir(object val=null)
Which directory to store files for UBA.
virtual UnrealBuildAcceleratorConfigConfig UBAShuffleCache(bool? val=null)
Shuffle the list of cache servers before each read attempt.
virtual UnrealBuildAcceleratorConfigConfig UBACrypto(bool present=true)
Set to true to enable encryption when transferring files over the network.
virtual UnrealBuildAcceleratorConfigConfig UBADisableStoreObjFilesCompressed(bool present=true)
Store object (.obj) compressed on disk. Requires uba to do link step where it will decompress obj fil...
virtual UnrealBuildAcceleratorConfigConfig UBAAllowKillOnMem(bool present=true)
Let UBA kill running processes when close to out of memory.
virtual UnrealBuildAcceleratorConfigConfig UBAStoreCapacityGb(double? val=null)
The amount of gigabytes UBA is allowed to use to store workset and cached data. It is a good idea to ...
virtual UnrealBuildAcceleratorConfigConfig UBAWriteCache(bool? val=null)
Set cache to write instead of fetch Set cache to write, expects one of [True, False,...
virtual UnrealBuildAcceleratorConfigConfig UBAUseKnownInputs(bool present=true)
Set to true to provide known inputs to processes that are run remote. This is an experimental feature...
virtual UnrealBuildAcceleratorConfigConfig UBAReportCacheMissReason(bool? val=null)
Report reason a cache miss happened. Useful when searching for determinism/portability issues.
virtual UnrealBuildAcceleratorConfigConfig UBAResetCas(bool present=true)
Resets the cas cache.
virtual UnrealBuildAcceleratorConfigConfig UBAActionsOutputFile(object val=null)
Write yaml file with all actions that are queued for build. This can be used to replay using "UbaCli....
virtual UnrealBuildAcceleratorConfigConfig UBADisableRemote(bool? val=null)
When set to true, UBA will not use any remote help.
virtual UnrealBuildAcceleratorConfigConfig UBALog(bool present=true)
Enable logging of UBA processes.
virtual UnrealBuildAcceleratorConfigConfig UBACacheMaxWorkers(double? val=null)
Max number of cache download tasks that can execute in parallel.
virtual UnrealBuildAcceleratorConfigConfig UBADetailedTrace(bool present=true)
Add verbose details to the UBA trace.
virtual UnrealBuildAcceleratorConfigConfig UBAVisualizer(bool present=true)
Launch visualizer application which shows build progress.
virtual UnrealBuildAcceleratorConfigConfig UBANoCustomMalloc(bool present=true)
Set to true to disable mimalloc and detouring of memory allocations.
virtual UnrealBuildAcceleratorConfigConfig UBAForcedRetryRemote(bool? val=null)
When set to true, actions that fail remotely with UBA will be retried locally with UBA.
virtual UnrealBuildAcceleratorConfigConfig UBAPrintSummary(bool present=true)
Prints summary of UBA stats at end of build.
virtual UnrealBuildAcceleratorConfigConfig UBAForceRemote(bool? val=null)
When set to true, UBA will force all actions that can be built remotely to be built remotely....
virtual UnrealBuildAcceleratorConfigConfig Nocompress(bool present=true)
Store object (.obj) compressed on disk. Requires uba to do link step where it will decompress obj fil...
virtual UnrealBuildAcceleratorConfigConfig UBATraceOutputFile(object val=null)
Provide custom path for trace output file.
virtual UnrealBuildAcceleratorConfigConfig UBAHost(object val=null)
Which ip UBA server should listen to for connections.
virtual UnrealBuildAcceleratorConfigConfig UBADetailedLog(bool present=true)
Set to true to see more info about what is happening inside uba and also log output from agents.
virtual UnrealBuildAcceleratorConfigConfig UBALinkRemote(bool? val=null)
If UBA should distribute linking to remote workers. This needs bandwidth but can be an optimization.
virtual UnrealBuildAcceleratorConfigConfig UBADisableWaitOnMem(bool present=true)
Disable UBA waiting on available memory before spawning new processes.
virtual UnrealBuildAcceleratorConfigConfig UBAZone(object val=null)
The zone to use for UBA.
virtual UnrealBuildAcceleratorConfigConfig UBAOutputStatsThresholdMs(double? val=null)
Threshold for when executor should output logging for the process. Defaults to never.
virtual UnrealBuildAcceleratorConfigConfig UBACacheProviders(params object[] values)
List of provider names for remote cache from ini.
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeAllowWine(bool present=true)
Allow use of Wine. Only applicable to Horde agents running Linux. Can still be ignored if Wine execut...
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeOidc(object val=null)
OIDC id for the login to use.
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeCacheEnabled(bool? val=null)
Enabled parameter for use by INI config, expects one of [True, False, BuildMachineOnly].
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeHost(object val=null)
Which ip UBA server should give to agents. This will invert so host listens and agents connect.
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeCacheDesiredConnectionCount(double? val=null)
Number of desired connections when connecting to cache.
virtual UnrealBuildAcceleratorHordeConfigConfig UBADisableHorde(bool? val=null)
Disable horde all together.
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeMaxCores(double? val=null)
Max cores allowed to be used by build session.
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeConnectionMode(object val=null)
Connection mode for agent/compute communication ConnectionMode for valid modes.
virtual UnrealBuildAcceleratorHordeConfigConfig UBASentryUrl(object val=null)
Sentry URL to send box data to. Optional.
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeMaxWorkers(double? val=null)
Max workers allowed to be used by build session.
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeEncryption(object val=null)
Encryption to use for agent/compute communication. Note that UBA agent uses its own encryption....
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeToken(object val=null)
Uri of the Horde server Auth token for the Horde server.
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeCluster(object val=null)
Compute cluster ID to use in Horde. Set to "_auto" to let Horde server resolve a suitable cluster....
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHorde(object val=null)
Uri of the Horde server.
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordePool(object val=null)
Pool for the Horde agent to assign, only used for commandline override.
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeRequirements(object val=null)
Requirements for the Horde agent to assign.
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeMaxIdle(double? val=null)
Max idle time in seconds to maintain a connection to a worker when no pending actions are currently a...
virtual UnrealBuildAcceleratorHordeConfigConfig UBAHordeDelay(double? val=null)
How long UBT should wait to ask for help. Useful in build configs where machine can delay remote work...
virtual VSCodeProjectFileGeneratorConfig NoCompileCommands(bool? val=null)
Do not create compile commands json files with compiler arguments for each file; works better with VS...
virtual VSCodeProjectFileGeneratorConfig UseVSCodeExtension(bool? val=null)
Create a workspace file for use with VS Code extension that communicates directly with UBT.
virtual VSWorkspaceProjectFileGeneratorConfig GenerateVsConfigOnly(bool? val=null)
Generate .vsconfig file with dependencies and exit.
virtual VSWorkspaceProjectFileGeneratorConfig TargetConfigurations(params UnrealTargetConfiguration[] values)
Target configurations to generate project files for.
virtual VSWorkspaceProjectFileGeneratorConfig ProjectNames(params object[] values)
Projects to generate project files for.
virtual VSWorkspaceProjectFileGeneratorConfig Platforms(params object[] values)
Platforms to generate project files for.
virtual VSWorkspaceProjectFileGeneratorConfig Query(object val=null)
Outputs all the available configurations, platforms and targets to a file provided by the user.
virtual VSWorkspaceProjectFileGeneratorConfig WorkspaceGeneratorVersion(bool? val=null)
Show version information and exit.
virtual VSWorkspaceProjectFileGeneratorConfig TargetTypes(params TargetType[] values)
Target types to generate project files for.
virtual VSWorkspaceProjectFileGeneratorConfig Minimize(bool present=true)
Should format JSON files in human readable form, or use packed one without indents.
Validates the various platforms to determine if they are ready for building.
virtual ValidatePlatformsConfig AllPlatforms(bool? val=null)
Whether to validate all platforms.
virtual ValidatePlatformsConfig OutputSDKs(bool? val=null)
Whether to output SDK versions.
virtual ValidatePlatformsConfig Platforms(params object[] values)
Platforms to validate.
virtual WindowsTargetRulesConfig WindowsSDKVersion(object val=null)
The specific Windows SDK version to use. This may be a specific version number (for example,...
virtual WindowsTargetRulesConfig EnableInstrumentation(bool? val=null)
Enables instrumentation.
virtual WindowsTargetRulesConfig EnableLibFuzzer(bool? val=null)
Enables LibFuzzer. Only supported for Visual Studio 2022 17.0.0 and up.
virtual WindowsTargetRulesConfig StrictPreprocessor(bool? val=null)
Enables new preprocessor conformance (/Zc:preprocessor). Enables new preprocessor conformance (/Zc:pr...
virtual WindowsTargetRulesConfig PdbAltPath(object val=null)
Specify an alternate location for the PDB file. This option does not change the location of the gener...
virtual WindowsTargetRulesConfig StrictInline(bool? val=null)
Enables inline conformance (Remove unreferenced COMDAT) (/Zc:inline).
virtual WindowsTargetRulesConfig _2026(WindowsCompiler? val=null)
Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to...
virtual WindowsTargetRulesConfig DisableVolatileMetadata(bool? val=null)
Volatile Metadata is enabled by default and improves x64 emulation on arm64, but may come at a small ...
virtual WindowsTargetRulesConfig RadLinker(bool? val=null)
True if we should use the Rad linker.
virtual WindowsTargetRulesConfig PGOMergedPGD(object val=null)
If specified along with -PGOOptimize, will use the specified per-merged pgd file instead of the usual...
virtual WindowsTargetRulesConfig StrictEnumTypes(bool? val=null)
Enables enum types conformance (/Zc:enumTypes) in VS2022 17.4 Preview 4.0+.
virtual WindowsTargetRulesConfig _2015(bool present=true)
Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to...
virtual WindowsTargetRulesConfig IgnoreStalePGOData(bool? val=null)
If -PGOOptimize is specified but the linker flags have changed since the last -PGOProfile,...
virtual WindowsTargetRulesConfig _2017(bool present=true)
Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to...
virtual WindowsTargetRulesConfig Deterministic(bool? val=null)
Set flags require for determinstic compiles (experimental) Force set flags require for determinstic c...
virtual WindowsTargetRulesConfig ObjSrcMap(object val=null)
Whether we should export a file containing .obj to source file mappings.
virtual WindowsTargetRulesConfig Compiler(WindowsCompiler? val=null)
Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to...
virtual WindowsTargetRulesConfig UpdatedCPPMacro(bool? val=null)
Enables updated __cplusplus macro (/Zc:__cplusplus).
virtual WindowsTargetRulesConfig SampleBasedPGO(bool? val=null)
If specified along with -PGOProfile, use sample-based PGO instead of instrumented....
virtual WindowsTargetRulesConfig ToolchainVersionWarningLevel(WarningLevel? val=null)
Warning level when reporting toolchains that are not in the preferred version list.
virtual WindowsTargetRulesConfig LinkRepro(object val=null)
Whether to have the linker or library tool to generate a link repro in the specified directory See ht...
virtual WindowsTargetRulesConfig NoSetResourceVersions(bool present=true)
If enabled will set the ProductVersion embeded in windows executables and dlls to contain BUILT_FROM_...
virtual WindowsTargetRulesConfig EnableASan(bool? val=null)
Enables address sanitizer (ASan). Only supported for Visual Studio 2019 16.7.0 and up.
virtual WindowsTargetRulesConfig EnableUBSan(bool? val=null)
Enables undefined behavior sanitizer (UBSan)
virtual WindowsTargetRulesConfig CompilerVersion(object val=null)
The specific toolchain version to use. This may be a specific version number (for example,...
virtual WindowsTargetRulesConfig VCDisableExtendedWarningInfo(bool present=true)
True if /d2ExtendedWarningInfo should be passed to the compiler and /d2:-ExtendedWarningInfo to the l...
virtual WindowsTargetRulesConfig DynamicDebugging(bool? val=null)
If specificed Visual Studio Dynamic Debugging support will be enabled, unless the compiler or linker ...
virtual WindowsTargetRulesConfig StaticAnalyzer(WindowsStaticAnalyzer? val=null)
The static analyzer to use. Whether static code analysis should be enabled.
virtual WindowsTargetRulesConfig VCToolchainVersion(object val=null)
The specific msvc toolchain version to use if the compiler is not msvc. This may be a specific versio...
virtual WindowsTargetRulesConfig UseXCurl(bool? val=null)
Whether this build will use Microsoft's custom XCurl instead of libcurl Note that XCurl is not part o...
virtual WindowsTargetRulesConfig PGOFastGen(bool? val=null)
If specified along with -PGOProfile, then /FASTGENPROFILE will be used instead of /GENPROFILE....
virtual WindowsTargetRulesConfig StripPrivateSymbols(bool? val=null)
Whether to request the linker create a stripped pdb file as part of the build. If enabled the full de...
virtual WindowsTargetRulesConfig StaticAnalyzerOutputType(WindowsStaticAnalyzerOutputType? val=null)
The output type to use for the static analyzer. The output type to use for the static analyzer....
virtual WindowsTargetRulesConfig VCFastFail(bool? val=null)
True if /fastfail should be passed to the msvc compiler and linker.
virtual WindowsTargetRulesConfig VCToolchain(WindowsCompiler? val=null)
Version of the toolchain to use on Windows platform when a non-msvc Compiler is in use,...
virtual WindowsTargetRulesConfig ShowIncludes(bool? val=null)
Print out files that are included by each source file.
virtual WindowsTargetRulesConfig ClangStandaloneDebug(bool? val=null)
True if optimizations to reduce the size of debug information should be disabled See https://clang....
virtual WindowsTargetRulesConfig _2022(WindowsCompiler? val=null)
Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to...
virtual WindowsTargetRulesConfig StrictODR(bool? val=null)
Enables enforcing standard C++ ODR violations (/Zc:checkGwOdr) in VS2022 17.5 Preview 2....
virtual WindowsTargetRulesConfig NoClangStandaloneDebug(bool present=true)
True if optimizations to reduce the size of debug information should be disabled. Disabling this opti...
virtual WindowsTargetRulesConfig NoLinkerDebugInfo(bool? val=null)
If you supply -NoDebugInfo, windows platforms still create debug info while linking....
virtual WindowsTargetRulesConfig PGONoExtraCounters(bool? val=null)
If specified along with -PGOProfile, prevent the usage of extra counters. Please note that by default...
virtual WindowsTargetRulesConfig ClangLinker(bool? val=null)
True if we should use the Clang linker (LLD) when we are compiling with Clang, or Intel linker (xilin...
virtual WindowsTargetRulesConfig SetResourceVersions(bool? val=null)
If enabled will set the ProductVersion embeded in windows executables and dlls to contain BUILT_FROM_...
virtual WindowsTargetRulesConfig VCExtendedWarningInfo(bool? val=null)
True if /d2ExtendedWarningInfo should be passed to the compiler and /d2:-ExtendedWarningInfo to the l...
virtual WindowsTargetRulesConfig Sarif(bool? val=null)
Whether .sarif files containing errors and warnings are written alongside each .obj,...
virtual WindowsTargetRulesConfig _2019(bool present=true)
Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to...
virtual WindowsTargetRulesConfig NoClangLinker(bool present=true)
True if we should use the Clang linker (LLD) when we are compiling with Clang or Intel oneAPI,...
virtual WindowsTargetRulesConfig Strict(bool? val=null)
Enables strict standard conformance mode (/permissive-) in VS2017+. Enables strict standard conforman...
virtual WriteDocumentationConfig OutputFile(object val=null)
The HTML file to write to REQUIRED!
virtual WriteDocumentationConfig _Type(DocumentationType? val=null)
Type of documentation to generate REQUIRED!
Writes all metadata files at the end of a build (receipts, version files, etc...)....
Unreal Build Tool defines the Unreal project structure and provides unified source building utilities...
virtual UbtConfig BuildAsFramework(bool? val=null)
Whether to build the iOS project as a framework.
virtual UbtConfig DisableVolatileMetadata(bool? val=null)
Volatile Metadata is enabled by default and improves x64 emulation on arm64, but may come at a small ...
virtual UbtConfig PublicSymbolsByDefault(bool? val=null)
Whether to expose all symbols as public by default on POSIX platforms.
virtual UbtConfig RemoteIni(object val=null)
Whether to wait for the mutex rather than aborting immediately Remote tool ini directory.
virtual UbtConfig PGOProfile(bool present=true)
Whether to enable Profile Guided Optimization (PGO) instrumentation in this build.
virtual UbtConfig Precompile(bool? val=null)
Make static libraries for all engine modules as intermediates for this target.
virtual UbtConfig NoPDB(bool present=true)
Whether PDB files should be used for Visual C++ builds.
virtual UbtConfig UBAHorde(object val=null)
Uri of the Horde server.
virtual UbtConfig DebugInfoLineTablesOnlyModules(params object[] values)
Modules that should emit line number tables instead of full debug information for compilers that supp...
UbtConfig UnrealBuildAcceleratorConfig(Action< UnrealBuildAcceleratorConfigConfig > configurator)
Configuration for Unreal Build Accelerator.
virtual UbtConfig UBACacheMaxWorkers(double? val=null)
Max number of cache download tasks that can execute in parallel.
UbtConfig QueryTargets(Action< QueryTargetsConfig > configurator)
Queries information about the targets supported by a project.
virtual UbtConfig UBAHordeHost(object val=null)
Which ip UBA server should give to agents. This will invert so host listens and agents connect.
virtual UbtConfig BytesPerUnityCPP(double? val=null)
An approximate number of bytes of C++ code to target for inclusion in a single unified C++ file.
virtual UbtConfig NoRetainFramePointers(bool present=true)
Forces frame pointers to be retained this is usually required when you want reliable callstacks e....
virtual UbtConfig AutoRTFMClosedStaticLinkage(bool present=true)
Whether to link closed function declarations statically.
virtual UbtConfig ModuleIncludePrivateWarningLevel(WarningLevel? val=null)
How to treat private module include path validation messages, where a module is adding an include pat...
virtual UbtConfig CompilerArguments(object val=null)
Additional arguments to pass to the compiler.
virtual UbtConfig UBAOutputStatsThresholdMs(double? val=null)
Threshold for when executor should output logging for the process. Defaults to never.
UbtConfig UhtGlobalOptions(Action< UhtGlobalOptionsConfig > configurator)
Global options for UBT (any modes)
UbtConfig SetupPlatforms(Action< SetupPlatformsConfig > configurator)
Register all platforms (and in the process, configure all autosdks)
virtual UbtConfig NoSharedPCH(bool present=true)
Enables "Shared PCHs", a feature which significantly speeds up compile times by attempting to share c...
virtual UbtConfig RadLinker(bool? val=null)
True if we should use the Rad linker.
virtual UbtConfig ProjectDefine(params object[] values)
Macros to define across all macros in the project.
virtual UbtConfig OverrideBuildEnvironment(bool? val=null)
Whether to ignore violations to the shared build environment (eg. editor targets modifying definition...
virtual UbtConfig EnableMinUBSan(bool? val=null)
Enables minimal undefined behavior sanitizer (UBSan)
virtual UbtConfig MergeAdditionalCommonModules(params object[] values)
Experimental: List of modules to exclude from Engine to be placed in Common.
virtual UbtConfig MinArm64CpuTarget(Arm64TargetCpuType? val=null)
Select a minimum ARM64 target CPU. This will change what ARMv8(9)-A ISA + extension code will be comp...
virtual UbtConfig UseChaos(bool present=true)
Whether to use the Chaos physics interface. This overrides the physx flags to disable APEX and NvClot...
virtual UbtConfig NoGoWide(bool? val=null)
Disable concurrent parsing and code generation.
UbtConfig GenerateClangDatabase(Action< GenerateClangDatabaseConfig > configurator)
Generate a clang compile_commands file for a target.
UbtConfig Deploy(Action< DeployConfig > configurator)
Invokes the deployment handler for a target.
virtual UbtConfig Minimize(bool present=true)
Should format JSON files in human readable form, or use packed one without indents.
virtual UbtConfig StrictPreprocessor(bool? val=null)
Enables new preprocessor conformance (/Zc:preprocessor). Enables new preprocessor conformance (/Zc:pr...
virtual UbtConfig UBAHordeMaxCores(double? val=null)
Max cores allowed to be used by build session.
virtual UbtConfig ForceDontBundleLibrariesInAPK(bool? val=null)
Forcing bDontBundleLibrariesInAPK to "true" or "false" ignoring any other option.
virtual UbtConfig NoUseChaos(bool present=true)
Whether to use the Chaos physics interface. This overrides the physx flags to disable APEX and NvClot...
virtual UbtConfig UniqueBuildEnvironment(bool present=true)
Backing storage for the BuildEnvironment property.
virtual UbtConfig NoBuildUHT(bool? val=null)
If true, do not build UHT, assume it is already built.
virtual UbtConfig UBAReportCacheMissReason(bool? val=null)
Report reason a cache miss happened. Useful when searching for determinism/portability issues.
virtual UbtConfig UBACompressionLevel(object val=null)
Compression level. Options are None, SuperFast, VeryFast, Fast, Normal, Optimal1 to Optimal5.
virtual UbtConfig Platforms(params object[] values)
Platforms to generate project files for.
virtual UbtConfig NoOutput(bool? val=null)
Do not save any output files other than reference output.
virtual UbtConfig VFS(bool present=true)
Experimental work in progress: Set flags to use toolchain virtual file system support,...
virtual UbtConfig NoThinLTO(bool present=true)
When Link Time Code Generation (LTCG) is enabled, whether to prefer using the lighter weight version ...
virtual UbtConfig UsePrecompiled(bool? val=null)
Use existing static libraries for all engine modules in this target.
virtual UbtConfig BypassGradlePackaging(bool present=true)
Do not use Gradle if previous APK exists and only libUnreal.so changed.
virtual UbtConfig NoManifestChanges(bool? val=null)
Do not allow manifest changes when building this target. Used to cause earlier errors when building m...
virtual UbtConfig TargetConfigurations(params UnrealTargetConfiguration[] values)
Target configurations to generate project files for.
virtual UbtConfig Tracing(bool? val=null)
Whether to parse timing data into a tracing file compatible with chrome://tracing.
virtual UbtConfig UBAAllowKillOnMem(bool present=true)
Let UBA kill running processes when close to out of memory.
virtual UbtConfig SingleFile(params object[] values)
Individual file(s) to compile.
virtual UbtConfig FastIterate(bool present=true)
Makes build interation faster.
virtual UbtConfig UseAutoRTFM(bool present=true)
Whether to use the AutoRTFM Clang compiler.
UbtConfig Execute(Action< ExecuteConfig > configurator)
Builds a target.
virtual UbtConfig VeryVerbose(bool present=true)
The amount of detail to write to the log Increase output verbosity more.
virtual UbtConfig DebugInfo(DebugInfoMode? val=null)
How much debug info should be generated. See DebugInfoMode enum for more details.
virtual UbtConfig Deterministic(bool? val=null)
Set flags require for determinstic compiles (experimental) Force set flags require for determinstic c...
virtual UbtConfig UBAStoreRaw(bool? val=null)
If UBA should store cas compressed or raw.
UbtConfig TargetRules(Action< TargetRulesConfig > configurator)
TargetRules is a data structure that contains the rules for defining a target (application/executable...
virtual UbtConfig StaticAnalyzerMode(StaticAnalyzerMode? val=null)
The mode to use for the static analyzer. This is only supported for Clang. Shallow mode completes qui...
virtual UbtConfig StripExports(bool? val=null)
Experimental: Strip unused exports from libraries. Only applies when LinkType is Modular.
virtual UbtConfig UBADisableHorde(bool? val=null)
Disable horde all together.
virtual UbtConfig IncludeDebugOutput(bool? val=null)
Include extra content in generated output to assist with debugging.
virtual UbtConfig Modular(bool present=true)
Backing storage for the LinkType property.
virtual UbtConfig VCToolchain(WindowsCompiler? val=null)
Version of the toolchain to use on Windows platform when a non-msvc Compiler is in use,...
UbtConfig UnrealBuildAcceleratorCacheConfig(Action< UnrealBuildAcceleratorCacheConfigConfig > configurator)
Configuration for Unreal Build Accelerator.
virtual UbtConfig ThinLTO(bool? val=null)
Enables "thin" LTO When Link Time Code Generation (LTCG) is enabled, whether to prefer using the ligh...
virtual UbtConfig Manifest(params object[] values)
Path to a manifest to output for this target.
UbtConfig LuminTargetRules(Action< LuminTargetRulesConfig > configurator)
Lumin-specific target settings.
virtual UbtConfig WarningsAsErrors(bool? val=null)
Whether to enable all warnings as errors. UE enables most warnings as errors already,...
virtual UbtConfig IWYUHeadersOnly(bool? val=null)
Tells "include what you use" to only compile header files.
virtual UbtConfig HeaderUnits(bool? val=null)
Will replace pch with ifc and use header units instead. This is an experimental and msvc-only feature...
virtual UbtConfig LiveCodingLimit(double? val=null)
If a non-zero value, a live coding request will be terminated if more than the given number of action...
virtual UbtConfig UBALinkRemote(bool? val=null)
If UBA should distribute linking to remote workers. This needs bandwidth but can be an optimization.
virtual UbtConfig PluginModuleUnsupportedWarningLevel(WarningLevel? val=null)
How to treat plugin specific module unsupported validation messages.
virtual UbtConfig UBAQuic(bool present=true)
Use Quic protocol instead of Tcp (experimental)
virtual UbtConfig BundleVersion(object val=null)
Bundle version for Mac apps.
virtual UbtConfig FileList(params object[] values)
Lists of files to compile.
virtual UbtConfig UBANoWrite(bool present=true)
Skip writing intermediate and output files to disk. Useful for validation builds where we don't need ...
virtual UbtConfig NoUBTMakefiles(bool present=true)
Enables support for very fast iterative builds by caching target data. Turning this on causes Unreal ...
virtual UbtConfig UBAStoreObjFilesCompressed(bool present=true)
Experimental: Store object (.obj) compressed on disk. Requires UBA to link, currently MSVC only....
virtual UbtConfig UBAHordeConnectionMode(object val=null)
Connection mode for agent/compute communication ConnectionMode for valid modes.
virtual UbtConfig ForceRulesCompile(bool? val=null)
Whether to force compiling rules assemblies, regardless of whether they are valid.
virtual UbtConfig UseVSCodeExtension(bool? val=null)
Create a workspace file for use with VS Code extension that communicates directly with UBT.
virtual UbtConfig DebugInfoSimpleTemplateNamesModules(params object[] values)
Modules for which template type names should be simplified to reduce the size of debug info for compi...
virtual UbtConfig ShadowVariableErrors(WarningLevel? val=null)
Forces shadow variable warnings to be treated as errors on platforms that support it....
virtual UbtConfig DebugInfoSimpleTemplateNamesPlugins(params object[] values)
Plugins for which template type names should be simplified to reduce the size of debug info for compi...
virtual UbtConfig StaticAnalyzerIncludeGenerated(bool? val=null)
When enabled, generated source files will be analyzed.
virtual UbtConfig LiveCodingModules(object val=null)
Path to a file containing a list of modules that may be modified for live coding.
virtual UbtConfig MergePluginsIgnored(params object[] values)
Experimental: List of plugins (and their dependencies) to ignore when processing merged libraries....
virtual UbtConfig IncrementalLinking(bool? val=null)
Whether to use incremental linking or not. Incremental linking can yield faster iteration times when ...
virtual UbtConfig MaxParallelActions(double? val=null)
Number of actions that can be executed in parallel. If 0 then code will pick a default based on the n...
virtual UbtConfig WorkingDir(object val=null)
Working directory when compiling with RelativePathsToSpecificFilesToCompile.
virtual UbtConfig TelemetryProvider(params object[] values)
Additional command line providers to load opt-in telemetry connection information from ini....
virtual UbtConfig UBAForcedRetry(bool? val=null)
When set to true, actions that fail locally with UBA will be retried without UBA. When set to true,...
virtual UbtConfig NoMutex(bool? val=null)
Whether to ignore the mutex Allow more than one instance of the program to run at once.
virtual UbtConfig UBAForcedRetryRemote(bool? val=null)
When set to true, actions that fail remotely with UBA will be retried locally with UBA.
virtual UbtConfig NoClangStandaloneDebug(bool present=true)
True if optimizations to reduce the size of debug information should be disabled. Disabling this opti...
virtual UbtConfig CStd(CStandardVersion? val=null)
Which C standard to use for compiling this target.
virtual UbtConfig SkipDeploy(bool? val=null)
Whether to force skipping deployment for platforms that require deployment by default.
virtual UbtConfig UBACrypto(bool present=true)
Set to true to enable encryption when transferring files over the network.
virtual UbtConfig ThinLTOCachePruningArguments(object val=null)
Arguments that will be applied to prune the ThinLTO cache on supported platforms. Arguments will only...
virtual UbtConfig ForceAPKGeneration(bool present=true)
Ignore AppBundle (AAB) generation setting if "-ForceAPKGeneration" specified.
virtual UbtConfig UBASendSize(double? val=null)
Max size of each message sent from server to client.
virtual UbtConfig UndefinedIdentifierWarningLevel(WarningLevel? val=null)
Indicates what warning/error level to treat undefined identifiers in conditional expressions....
virtual UbtConfig DependencyList(params object[] values)
Path to a list of dependencies for this target, when precompiling.
virtual UbtConfig EnableASan(bool? val=null)
Enables address sanitizer (ASan) Enables address sanitizer (ASan). Enables address sanitizer (ASan)....
virtual UbtConfig NoCompileChaos(bool present=true)
Whether to compile the Chaos physics plugin.
virtual UbtConfig UBACacheProviders(params object[] values)
List of provider names for remote cache from ini.
virtual UbtConfig NoSNDBS(bool present=true)
Whether SN-DBS may be used. Whether SN-DBS may be used if available, default is true.
UbtConfig ParseMsvcTimingInfo(Action< ParseMsvcTimingInfoConfig > configurator)
Parses an MSVC timing info file generated from cl-filter to turn it into a form that can be used by o...
UbtConfig IOSTargetRules(Action< IOSTargetRulesConfig > configurator)
IOS-specific target settings.
UbtConfig PVSGather(Action< PVSGatherConfig > configurator)
Special mode for gathering all the messages into a single output file.
virtual UbtConfig Nocompress(bool present=true)
Store object (.obj) compressed on disk. Requires uba to do link step where it will decompress obj fil...
virtual UbtConfig ShowIncludes(bool? val=null)
Print out files that are included by each source file.
virtual UbtConfig UBADetailedLog(bool present=true)
Set to true to see more info about what is happening inside uba and also log output from agents.
virtual UbtConfig SampleBasedPGO(bool? val=null)
If specified along with -PGOProfile, use sample-based PGO instead of instrumented....
virtual UbtConfig TargetTypes(params TargetType[] values)
Target types to generate project files for.
virtual UbtConfig UBAHordeDelay(double? val=null)
How long UBT should wait to ask for help. Useful in build configs where machine can delay remote work...
virtual UbtConfig WithAssembly(bool? val=null)
Whether to generate assembly data while compiling this target. Works exclusively on MSVC for now.
virtual UbtConfig FromMsBuild(bool? val=null)
Whether to format messages in MsBuild format Format messages for msbuild Whether UBT is invoked from ...
virtual UbtConfig Log(object val=null)
Specifies the path to a log file to write. Note that the default mode (eg. building,...
virtual UbtConfig SharedBuildEnvironment(bool present=true)
Backing storage for the BuildEnvironment property.
virtual UbtConfig EnableMSan(bool? val=null)
Enables memory sanitizer (MSan)
UbtConfig IWYU(Action< IWYUConfig > configurator)
Profiles different unity sizes and prints out the different size and its timings.
virtual UbtConfig EdditProjectFiles(bool present=true)
The mode to execute.
virtual UbtConfig NoHotReload(HotReloadMode? val=null)
Whether to perform hot reload for this target.
virtual UbtConfig Preprocess(bool? val=null)
Whether to just preprocess source files for this target, and skip compilation.
virtual UbtConfig StaticAnalyzerPVSPrintLevel(double? val=null)
The level of warnings to print when analyzing using PVS-Studio.
UbtConfig GlobalOptions(Action< GlobalOptionsConfig > configurator)
Global options for UBT (any modes)
virtual UbtConfig CppStd(CppStandardVersion? val=null)
Which C++ stanard to use for compiling this target Which C++ standard to use for compiling this targe...
virtual UbtConfig NoUBALocal(bool present=true)
Whether the UnrealBuildAccelerator (local only) executor will be used.
virtual UbtConfig OptimizationLevel(OptimizationMode? val=null)
Allows to fine tune optimizations level for speed and\or code size.
virtual UbtConfig UBAProviders(params object[] values)
List of provider names for remote connections from ini It is recommended to set Providers in ini so t...
virtual UbtConfig IgnoreStalePGOData(bool? val=null)
If -PGOOptimize is specified but the linker flags have changed since the last -PGOProfile,...
virtual UbtConfig VCToolchainVersion(object val=null)
The specific msvc toolchain version to use if the compiler is not msvc. This may be a specific versio...
UbtConfig WriteDocumentation(Action< WriteDocumentationConfig > configurator)
Generates documentation from reflection data.
virtual UbtConfig CompilerVersion(object val=null)
The specific toolchain version to use. This may be a specific version number (for example,...
UbtConfig PrintBuildGraphInfo(Action< PrintBuildGraphInfoConfig > configurator)
Generate a clang compile_commands file for a target.
virtual UbtConfig Session(object val=null)
Session identifier for this run of UBT, if unset defaults to a random Guid.
virtual UbtConfig IgnoreInvalidFiles(bool? val=null)
When single file targets are specified, via -File=, -SingleFile=, or -FileList= If this option is set...
virtual UbtConfig XCodeProjectFiles(bool present=true)
The mode to execute Generate project files for XCode.
virtual UbtConfig RetainFramePointers(bool present=true)
Forces frame pointers to be retained this is usually required when you want reliable callstacks e....
virtual UbtConfig _2022(WindowsCompiler? val=null)
Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a speci...
virtual UbtConfig SkipRulesCompile(bool? val=null)
Whether to skip compiling rules assemblies and just assume they are valid.
virtual UbtConfig UBAStrict(bool? val=null)
When set to true, all errors and warnings from UBA will be output at the appropriate severity level t...
virtual UbtConfig NoFASTBuild(bool present=true)
Whether FASTBuild may be used. Whether FASTBuild may be used if available, default is true.
virtual UbtConfig PGOMergedPGD(object val=null)
If specified along with -PGOOptimize, will use the specified per-merged pgd file instead of the usual...
virtual UbtConfig StrictEnumTypes(bool? val=null)
Enables enum types conformance (/Zc:enumTypes) in VS2022 17.4 Preview 4.0+.
virtual UbtConfig NoIncrementalLinking(bool present=true)
Whether to use incremental linking or not. Incremental linking can yield faster iteration times when ...
virtual UbtConfig NoUseIris(bool present=true)
Whether to use Iris.
virtual UbtConfig WriteRef(bool? val=null)
Write all the output to a reference directory.
virtual UbtConfig CompactOutput(bool? val=null)
Instruct the executor to write compact output e.g. only errors, if supported by the executor....
virtual UbtConfig DisableDebugInfoPlugins(params object[] values)
Plugins that should have debug info disabled.
UbtConfig IOSProjectSettings(Action< IOSProjectSettingsConfig > configurator)
Stores project-specific IOS settings. Instances of this object are cached by IOSPlatform.
virtual UbtConfig UBAHordeAllowWine(bool present=true)
Allow use of Wine. Only applicable to Horde agents running Linux. Can still be ignored if Wine execut...
virtual UbtConfig GPUArchitectures(params object[] values)
Lists GPU Architectures that you want to build (mostly used for mobile etc.)
virtual UbtConfig UBARootDir(object val=null)
Which directory to store files for UBA.
virtual UbtConfig LogArtifactCacheMisses(bool present=true)
If true, log all artifact cache misses as informational messages.
UbtConfig UnrealHeaderTool(Action< UnrealHeaderToolConfig > configurator)
Invoke UHT.
virtual UbtConfig Alwaysgeneratedsym(bool present=true)
Don't generate crashlytics data.
virtual UbtConfig ThinLTOCacheDirectory(object val=null)
Directory where to put the ThinLTO cache on supported platforms.
virtual UbtConfig NoPCHChain(bool present=true)
Whether PCHs should be chained when compiling with clang.
virtual UbtConfig UBAHordeEncryption(object val=null)
Encryption to use for agent/compute communication. Note that UBA agent uses its own encryption....
virtual UbtConfig Createstripflagfile(bool present=true)
Whether to create a ".stripped" file when stripping symbols or not.
virtual UbtConfig _2015(bool present=true)
Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a speci...
virtual UbtConfig _2026(WindowsCompiler? val=null)
Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to...
virtual UbtConfig StaticAnalyzer(WindowsStaticAnalyzer? val=null)
The static analyzer to use. Whether static code analysis should be enabled.
virtual UbtConfig UBAStoreCapacityGb(double? val=null)
The amount of gigabytes UBA is allowed to use to store workset and cached data. It is a good idea to ...
virtual UbtConfig UBAHordeCacheDesiredConnectionCount(double? val=null)
Number of desired connections when connecting to cache.
virtual UbtConfig VCFastFail(bool? val=null)
True if /fastfail should be passed to the msvc compiler and linker.
virtual UbtConfig WaitMutex(bool? val=null)
Whether to wait for the mutex rather than aborting immediately Wait for another instance to finish an...
UbtConfig AggregateClangTimingInfo(Action< AggregateClangTimingInfoConfig > configurator)
Aggregates clang timing information files together into one monolithic breakdown file.
virtual UbtConfig DebugInfoInlineLineTablesModules(params object[] values)
Modules that should include line number tables for inline functions for compilers that support doing ...
virtual UbtConfig DisableDebugInfoModules(params object[] values)
Modules that should have debug info disabled.
virtual UbtConfig TargetNameOverride(object val=null)
Override the name used for this target.
virtual UbtConfig EnableHWASan(bool? val=null)
Enables HW address sanitizer (HWASan)
virtual UbtConfig UBAVisualizer(bool present=true)
Launch visualizer application which shows build progress.
virtual UbtConfig ForceHeaderGeneration(bool? val=null)
If true, force header regeneration. Intended for the build machine.
virtual UbtConfig EnableDSYM(bool present=true)
Enables the generation of .dsym files. This can be disabled to enable faster iteration times during d...
virtual UbtConfig WindowsSDKVersion(object val=null)
The specific Windows SDK version to use. This may be a specific version number (for example,...
virtual UbtConfig Distribution(bool? val=null)
Mark the build for distribution If -distribution was passed on the commandline, this build is for dis...
virtual UbtConfig DisableUnity(bool present=true)
Whether to unify C++ code into larger files for faster compilation.
virtual UbtConfig SetResourceVersions(bool? val=null)
If enabled will set the ProductVersion embeded in windows executables and dlls to contain BUILT_FROM_...
virtual UbtConfig StripPrivateSymbols(bool? val=null)
Whether to request the linker create a stripped pdb file as part of the build. If enabled the full de...
virtual UbtConfig NoHotReloadFromIDE(bool present=true)
True if hot-reload from IDE is allowed.
UbtConfig TargetDescriptor(Action< TargetDescriptorConfig > configurator)
Describes all of the information needed to initialize a UEBuildTarget object.
virtual UbtConfig BuildDependantPlugins(bool? val=null)
When building a foreign plugin, whether to build plugins it depends on as well.
virtual UbtConfig KDevelopfile(bool present=true)
The mode to execute Generate project files for KDevelop.
virtual UbtConfig Clean(bool present=true)
The mode to execute Clean build products. Equivalent to -Mode=Clean.
virtual UbtConfig Quiet(bool? val=null)
Suppress messages about building this target.
virtual UbtConfig NoStripSymbols(bool? val=null)
Whether to globally skip symbol stripping.
virtual UbtConfig Rider(bool present=true)
The mode to execute Generate project files for Rider.
virtual UbtConfig CreateStub(bool present=true)
If true, then a stub IPA will be generated when compiling is done (minimal files needed for a valid I...
virtual UbtConfig UBAHordeCluster(object val=null)
Compute cluster ID to use in Horde. Set to "_auto" to let Horde server resolve a suitable cluster....
virtual UbtConfig ArtifactReads(bool present=true)
If set, artifacts will be read.
virtual UbtConfig UBALog(bool present=true)
Enable logging of UBA processes.
UbtConfig InlineGeneratedCpps(Action< InlineGeneratedCppsConfig > configurator)
Generate a clang compile_commands file for a target.
virtual UbtConfig Strict(bool? val=null)
Enables strict standard conformance mode (/permissive-) in VS2017+. Enables strict standard conforman...
virtual UbtConfig MergeModulesReport(bool? val=null)
Experimental: Whether to report module merging data to the game target.
UbtConfig JsonExport(Action< JsonExportConfig > configurator)
Exports a target as a JSON file.
virtual UbtConfig FastMonoCalls(bool present=true)
New Monolithic Graphics drivers have optional "fast calls" replacing various D3d functions.
virtual UbtConfig Query(object val=null)
Outputs all the available configurations, platforms and targets to a file provided by the user.
virtual UbtConfig AndroidStudio(bool present=true)
The mode to execute Generate project files for Android Studio.
virtual UbtConfig VCExtendedWarningInfo(bool? val=null)
True if /d2ExtendedWarningInfo should be passed to the compiler and /d2:-ExtendedWarningInfo to the l...
virtual UbtConfig ToolChain(object val=null)
Allows overriding the toolchain to be created for this target. This must match the name of a class de...
UbtConfig Build(Action< BuildConfig > configurator)
Builds a target.
virtual UbtConfig CompileChaosVisualDebuggerSupport(bool? val=null)
Whether to compile in Chaos Visual Debugger (CVD) support features to record the state of the physics...
virtual UbtConfig ModuleIncludePathWarningLevel(WarningLevel? val=null)
How to treat general module include path validation messages.
virtual UbtConfig _2019(WindowsCompiler? val=null)
Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a speci...
virtual UbtConfig MinCpuArchX64(MinimumCpuArchitectureX64? val=null)
Direct the compiler to generate AVX instructions wherever SSE or AVX intrinsics are used,...
virtual UbtConfig NoDetailedUnityFiles(bool present=true)
Whether to add additional information to the unity files, such as '_of_X' in the file name....
virtual UbtConfig LinkRepro(object val=null)
Whether to have the linker or library tool to generate a link repro in the specified directory See ht...
virtual UbtConfig Formal(bool? val=null)
Indicates that this is a formal build, intended for distribution. This flag is automatically set to t...
virtual UbtConfig Rtti(bool? val=null)
Enable RTTI for all modules.
UbtConfig UnrealBuildAcceleratorHordeConfig(Action< UnrealBuildAcceleratorHordeConfigConfig > configurator)
Configuration for Unreal Build Accelerator Horde session.
virtual UbtConfig UBAHordeRequirements(object val=null)
Requirements for the Horde agent to assign.
UbtConfig AndroidTargetRules(Action< AndroidTargetRulesConfig > configurator)
Android-specific target settings.
virtual UbtConfig NoClangLinker(bool present=true)
True if we should use the Clang linker (LLD) when we are compiling with Clang or Intel oneAPI,...
virtual UbtConfig DebugInfoLineTablesOnly(DebugInfoMode? val=null)
True if only debug line number tables should be emitted in debug information for compilers that suppo...
virtual UbtConfig CompileIoStoreOnDemand(bool present=true)
Whether to use I/O store on-demand.
virtual UbtConfig UBAHordeOidc(object val=null)
OIDC id for the login to use.
virtual UbtConfig ActionStallReportTime(double? val=null)
Number of second of no completed actions to trigger an action stall report. If zero,...
virtual UbtConfig MapFile(bool? val=null)
Outputs a map file as part of the build.
virtual UbtConfig UBASentryUrl(object val=null)
Sentry URL to send box data to. Optional.
virtual UbtConfig BuildPluginAsLocal(bool? val=null)
Whether we should treat the ForeignPlugin argument as a local plugin for building purposes.
virtual UbtConfig NoDebugInfo(bool? val=null)
Whether to globally disable debug info generation; see DebugInfoHeuristics.cs for per-config and per-...
virtual UbtConfig CMakefile(bool present=true)
The mode to execute Generate project files for CMake.
virtual UbtConfig NoArtifactReads(bool present=true)
If set, artifacts will be read.
virtual UbtConfig NoUseVerse(bool present=true)
Whether to use the verse script interface.
virtual UbtConfig Architectures(params object[] values)
Lists Architectures that you want to build.
virtual UbtConfig UBAHordeMaxWorkers(double? val=null)
Max workers allowed to be used by build session.
virtual UbtConfig PGONoExtraCounters(bool? val=null)
If specified along with -PGOProfile, prevent the usage of extra counters. Please note that by default...
virtual UbtConfig UBAHordeCacheEnabled(bool? val=null)
Enabled parameter for use by INI config, expects one of [True, False, BuildMachineOnly].
virtual UbtConfig PrintDebugInfo(bool present=true)
Whether debug info should be written to the console.
virtual UbtConfig SwitchUnhandledEnumeratorWarningLevel(WarningLevel? val=null)
Indicates what warning/error level to treat unhandled enumerators in switches on enumeration-typed va...
virtual UbtConfig Monolithic(bool present=true)
Backing storage for the LinkType property.
virtual UbtConfig UBATraceOutputFile(object val=null)
Provide custom path for trace output file.
virtual UbtConfig StrictODR(bool? val=null)
Enables enforcing standard C++ ODR violations (/Zc:checkGwOdr) in VS2022 17.5 Preview 2....
virtual UbtConfig UBAMaxWorkers(double? val=null)
Max number of worker threads that can handle messages from remotes.
virtual UbtConfig NoDefaultExporters(bool? val=null)
Disable all default exporters. Useful for when a specific exporter is to be run.
virtual UbtConfig Stripsymbols(bool present=true)
Whether to strip iOS symbols or not (implied by Shipping config). Whether to strip symbols or not (im...
virtual UbtConfig ClangLinker(bool? val=null)
True if we should use the Clang linker (LLD) when we are compiling with Clang, or Intel linker (xilin...
virtual UbtConfig UseVerse(bool present=true)
Whether to use the verse script interface.
virtual UbtConfig Generatedsymbundle(bool? val=null)
Whether to generate a dSYM bundle (as opposed to single file dSYM)
virtual UbtConfig Files(params object[] values)
Relative path to file(s) to compile.
virtual UbtConfig ImportProvision(object val=null)
Manual override for the provision to use. Should be a full path.
virtual UbtConfig StressTestUnity(bool? val=null)
Whether to stress test the C++ unity build robustness by including all C++ files files in a project f...
virtual UbtConfig NoLink(bool? val=null)
Whether to disable linking for this target.
virtual UbtConfig UBADisableStoreObjFilesCompressed(bool present=true)
Store object (.obj) compressed on disk. Requires uba to do link step where it will decompress obj fil...
virtual UbtConfig ForceHotReload(HotReloadMode? val=null)
Whether to perform hot reload for this target.
virtual UbtConfig Compiler(WindowsCompiler? val=null)
Version of the compiler toolchain to use on Windows platform. A value of "default" will be changed to...
virtual UbtConfig Mode(object val=null)
The mode to execute.
virtual UbtConfig VSMac(bool present=true)
The mode to execute Generate project files for Visual Studio Mac.
virtual UbtConfig ArtifactDirectory(object val=null)
Location to store the artifacts.
virtual UbtConfig LTCG(bool? val=null)
Whether to allow the use of link time code generation (LTCG).
UbtConfig ValidatePlatforms(Action< ValidatePlatformsConfig > configurator)
Validates the various platforms to determine if they are ready for building.
virtual UbtConfig CppStdEngine(CppStandardVersion? val=null)
Which C++ standard to use for compiling this target (for engine modules)
UbtConfig MacTargetRules(Action< MacTargetRulesConfig > configurator)
Mac-specific target settings.
virtual UbtConfig ProjectNames(params object[] values)
Projects to generate project files for.
virtual UbtConfig NoLog(bool? val=null)
Disables all logging including the default log location Disable log file creation including the defau...
virtual UbtConfig UBAHordeMaxIdle(double? val=null)
Max idle time in seconds to maintain a connection to a worker when no pending actions are currently a...
virtual UbtConfig UBAHordeToken(object val=null)
Uri of the Horde server Auth token for the Horde server.
virtual UbtConfig EddieProjectFiles(bool present=true)
The mode to execute Generate project files for Eddie.
virtual UbtConfig UBADisableWaitOnMem(bool present=true)
Disable UBA waiting on available memory before spawning new processes.
virtual UbtConfig StaticAnalyzerProjectOnly(bool? val=null)
Only run static analysis against project modules, skipping engine modules.
virtual UbtConfig ProjectFiles(bool present=true)
The mode to execute Generate project files based on IDE preference. Equivalent to -Mode=GenerateProje...
UbtConfig ProfileUnitySizes(Action< ProfileUnitySizesConfig > configurator)
Profiles different unity sizes and prints out the different size and its timings.
virtual UbtConfig UseAutoRTFMVerifier(bool present=true)
Whether to enable emitting AutoRTFM verification metadata.
virtual UbtConfig UBAActionsOutputFile(object val=null)
Write yaml file with all actions that are queued for build. This can be used to replay using "UbaCli....
virtual UbtConfig CompileAsDll(bool? val=null)
Whether this target should be compiled as a DLL. Requires LinkType to be set to TargetLinkType....
virtual UbtConfig Module(params object[] values)
Set of module names to compile.
UbtConfig ImmediateActionQueue(Action< ImmediateActionQueueConfig > configurator)
Helper class to manage the action queue.
virtual UbtConfig VCDisableExtendedWarningInfo(bool present=true)
True if /d2ExtendedWarningInfo should be passed to the compiler and /d2:-ExtendedWarningInfo to the l...
virtual UbtConfig Timing(bool? val=null)
Whether to write detailed timing info from the compiler and linker.
virtual UbtConfig DisablePlugin(params object[] values)
List of plugins to be disabled for this target. Note that the project file may still reference them,...
virtual UbtConfig OptionalPlugins(params object[] values)
Additional plugins that should be included for this target if they are found.
UbtConfig CppCompileWarnings(Action< CppCompileWarningsConfig > configurator)
Container class used for C++ compiler warning settings.
virtual UbtConfig WriteActions(params object[] values)
Export the actions for the target to a file.
virtual UbtConfig SupportEditAndContinue(bool? val=null)
Whether to support edit and continue.
virtual UbtConfig PGOOptimize(bool present=true)
Whether to optimize this build with Profile Guided Optimization (PGO).
virtual UbtConfig UBAForceRemote(bool? val=null)
When set to true, UBA will force all actions that can be built remotely to be built remotely....
virtual UbtConfig VerifyRef(bool? val=null)
Write all the output to a verification directory and compare to the reference output.
virtual UbtConfig NoUseVerseBPVM(bool present=true)
Whether to use the BPVM to run Verse.
virtual UbtConfig ImportCertificatePassword(object val=null)
Password for the imported certificate.
UbtConfig GenerateProjectFiles(Action< GenerateProjectFilesConfig > configurator)
Generates project files for one or more projects.
virtual UbtConfig UBADisableRemote(bool? val=null)
When set to true, UBA will not use any remote help.
virtual UbtConfig AdditionalPlugins(params object[] values)
A list of additional plugins which need to be included in this target. This allows referencing non-op...
UbtConfig LinuxTargetRules(Action< LinuxTargetRulesConfig > configurator)
Linux-specific target settings.
virtual UbtConfig UBANoCustomMalloc(bool present=true)
Set to true to disable mimalloc and detouring of memory allocations.
virtual UbtConfig BuildVersion(object val=null)
The build version string.
virtual UbtConfig UBAHordePool(object val=null)
Pool for the Horde agent to assign, only used for commandline override.
virtual UbtConfig StrictInline(bool? val=null)
Enables inline conformance (Remove unreferenced COMDAT) (/Zc:inline).
virtual UbtConfig DebugInfoNoInlineLineTables(DebugInfoMode? val=null)
True if debug line number tables should be omitted in debug information for inline functions,...
virtual UbtConfig EnableLLDB(bool? val=null)
Turns on tuning of debug info for LLDB.
virtual UbtConfig NoDSYM(bool present=true)
Enables the generation of .dsym files. This can be disabled to enable faster iteration times during d...
virtual UbtConfig EnableLibFuzzer(bool? val=null)
Enables LibFuzzer Enables LibFuzzer. Enables LibFuzzer. Only supported for Visual Studio 2022 17....
virtual UbtConfig MergePlugins(params object[] values)
Experimental: List of plugins (and their dependencies) to each merge into separate libraries....
virtual UbtConfig Define(params object[] values)
Macros to define globally across the whole target.
virtual UbtConfig Timestamps(bool? val=null)
Whether to include timestamps in the log Include timestamps in the log.
virtual UbtConfig WorkspaceGeneratorVersion(bool? val=null)
Show version information and exit.
virtual UbtConfig NoUseAutoRTFM(bool present=true)
Whether to use the AutoRTFM Clang compiler. Whether to use force AutoRTFM Clang compiler off.
virtual UbtConfig LiveCodingManifest(object val=null)
Path to the manifest for passing info about the output to live coding.
virtual UbtConfig Skipclangvalidation(bool present=true)
Disables clang build verification checks on static libraries.
UbtConfig WriteMetadata(Action< WriteMetadataConfig > configurator)
Writes all metadata files at the end of a build (receipts, version files, etc...)....
virtual UbtConfig Skipcrashlytics(bool? val=null)
Don't generate crashlytics data.
virtual UbtConfig UseVerseBPVM(bool present=true)
Whether to use the BPVM to run Verse.
virtual UbtConfig SingleFileBuildDependents(bool? val=null)
Will build all files that directly include any of the files provided in -SingleFile Will build all fi...
virtual UbtConfig ToolchainVersionWarningLevel(WarningLevel? val=null)
Warning level when reporting toolchains that are not in the preferred version list.
virtual UbtConfig Verbose(bool present=true)
The amount of detail to write to the log Increase output verbosity.
virtual UbtConfig UsePDB(bool present=true)
Whether PDB files should be used for Visual C++ builds.
virtual UbtConfig DebugInfoSimpleTemplateNames(DebugInfoMode? val=null)
True if template type names should be simplified to reduce the size of debug info for compilers that ...
virtual UbtConfig FPSemantics(FPSemanticsMode? val=null)
Allows setting the FP semantics.
virtual UbtConfig TraceWrites(object val=null)
Log all attempts to write to the specified file Trace writes requested to the specified file.
virtual UbtConfig OnlyGradleGeneration(bool present=true)
Only generates gradle.
virtual UbtConfig AllModules(bool? val=null)
Build all the modules that are valid for this target type. Used for CIS and making installed engine b...
UbtConfig Test(Action< TestConfig > configurator)
Builds low level tests on one or more targets.
virtual UbtConfig IWYU(bool? val=null)
Enables "include what you use" by default for modules in this target. Changes the default PCH mode fo...
virtual UbtConfig UBAHost(object val=null)
Which ip UBA server should listen to for connections.
virtual UbtConfig ClangStandaloneDebug(bool? val=null)
True if optimizations to reduce the size of debug information should be disabled See https://clang....
virtual UbtConfig NoCompileCommands(bool? val=null)
Do not create compile commands json files with compiler arguments for each file; works better with VS...
virtual UbtConfig UBAZone(object val=null)
The zone to use for UBA.
UbtConfig Clean(Action< CleanConfig > configurator)
Cleans build products and intermediates for the target. This deletes files which are named consistent...
virtual UbtConfig UBAWriteCache(bool? val=null)
Set cache to write instead of fetch Set cache to write, expects one of [True, False,...
virtual UbtConfig CompileChaos(bool present=true)
Whether to compile the Chaos physics plugin.
virtual UbtConfig NoDumpSyms(bool? val=null)
Whether to globally disable calling dump_syms.
virtual UbtConfig ProjectFileFormat(bool present=true)
The mode to execute Generate project files in specified format. May be used multiple times.
virtual UbtConfig UBADetailedTrace(bool present=true)
Add verbose details to the UBA trace.
virtual UbtConfig HordeCompute(bool present=true)
Whether Horde remote compute may be used. Highly experimental, disabled by default.
virtual UbtConfig PGOFastGen(bool? val=null)
If specified along with -PGOProfile, then /FASTGENPROFILE will be used instead of /GENPROFILE....
virtual UbtConfig Plugin(object val=null)
Foreign plugin to compile against this target.
virtual UbtConfig Deploy(bool? val=null)
Whether to deploy the executable after compilation on platforms that require deployment.
virtual UbtConfig ForceDebugInfo(bool? val=null)
Whether to force debug info to be generated.
virtual UbtConfig EnableInstrumentation(bool? val=null)
Enables instrumentation.
UbtConfig FixIncludePaths(Action< FixIncludePathsConfig > configurator)
Fixes the include paths found in a header and source file.
UbtConfig Analyze(Action< AnalyzeConfig > configurator)
Outputs information about the given target, including a module dependecy graph (in ....
virtual UbtConfig Progress(bool? val=null)
Whether to write progress markup in a format that can be parsed by other programs Write progress mess...
virtual UbtConfig DynamicDebugging(bool? val=null)
If specificed Visual Studio Dynamic Debugging support will be enabled, unless the compiler or linker ...
virtual UbtConfig DetailedUnityFiles(bool present=true)
Whether to add additional information to the unity files, such as '_of_X' in the file name....
virtual UbtConfig CrashDiagnosticDirectory(object val=null)
Directory where to put crash report files for platforms that support it.
virtual UbtConfig FastPDB(bool? val=null)
Whether to use the :FASTLINK option when building with /DEBUG to create local PDBs on Windows....
virtual UbtConfig UBANoDetour(bool present=true)
Disable all detouring making all actions run outside uba.
UbtConfig HoloLensTargetRules(Action< HoloLensTargetRulesConfig > configurator)
HoloLens-specific target settings.
virtual UbtConfig UBAUseKnownInputs(bool present=true)
Set to true to provide known inputs to processes that are run remote. This is an experimental feature...
virtual UbtConfig ActionStallTerminateTime(double? val=null)
Number of second of no completed actions to trigger to terminate the queue. If zero,...
virtual UbtConfig UBA(bool present=true)
Whether the UnrealBuildAccelerator executor will be used.
virtual UbtConfig StackProtect(bool? val=null)
Enable Stack Protection. Has an overhead cost.
virtual UbtConfig UBAPort(double? val=null)
Which port UBA server should listen to for connections.
virtual UbtConfig OnlyPrimaryProjectFile(bool? val=null)
When specified only primary project file (root.json) will be generated. Normally project files for sp...
UbtConfig AggregateParsedTimingInfo(Action< AggregateParsedTimingInfoConfig > configurator)
Aggregates parsed Visual C++ timing information files together into one monolithic breakdown file.
virtual UbtConfig NoFastMonoCalls(bool present=true)
New Monolithic Graphics drivers have optional "fast calls" replacing various D3d functions.
virtual UbtConfig _2017(WindowsCompiler? val=null)
Version of the compiler toolchain to use on HoloLens. A value of "default" will be changed to a speci...
UbtConfig WindowsTargetRules(Action< WindowsTargetRulesConfig > configurator)
Windows-specific target settings.
virtual UbtConfig NoSetResourceVersions(bool present=true)
If enabled will set the ProductVersion embeded in windows executables and dlls to contain BUILT_FROM_...
virtual UbtConfig ModuleIncludeSubdirectoryWarningLevel(WarningLevel? val=null)
How to treat unnecessary module sub-directory include path validation messages.
virtual UbtConfig UseXCurl(bool? val=null)
Whether this build will use Microsoft's custom XCurl instead of libcurl Note that XCurl is not part o...
virtual UbtConfig LiveCoding(HotReloadMode? val=null)
Whether to perform hot reload for this target.
virtual UbtConfig BinariesSubfolder(object val=null)
Subfolder to place executables in, relative to the default location.
virtual UbtConfig DisableModuleNumIncludedBytesPerUnityCPPOverride(bool present=true)
Disables overrides that are set by the module.
virtual UbtConfig File(params object[] values)
Individual file(s) to compile.
virtual UbtConfig ThinLTODistributed(bool? val=null)
When ThinLTO is enabled we use distributed linking if supported This can save a lot of time for large...
virtual UbtConfig AllCores(bool? val=null)
Consider logical cores when determining how many total cpu cores are available.
virtual UbtConfig DisableAdaptiveUnity(bool present=true)
Use a heuristic to determine which files are currently being iterated on and exclude them from unity ...
virtual UbtConfig Generatedsymfile(bool? val=null)
Whether to generate a dSYM file or not.
virtual UbtConfig UBAResetCas(bool present=true)
Resets the cas cache.
virtual UbtConfig NoPCH(bool present=true)
Whether PCH files should be used.
virtual UbtConfig ModuleUnsupportedWarningLevel(WarningLevel? val=null)
How to treat module unsupported validation messages.
virtual UbtConfig NoXGE(bool present=true)
Whether XGE may be used. Whether XGE may be used if available, default is true.
virtual UbtConfig CodeliteFiles(bool present=true)
The mode to execute Generate project files for Codelite.
virtual UbtConfig FlushMac(bool? val=null)
Whether to clean Builds directory on a remote Mac before building.
virtual UbtConfig ForceUnity(bool? val=null)
Whether to force C++ source files to be combined into larger files for faster compilation.
virtual UbtConfig GenerateVsConfigOnly(bool? val=null)
Generate .vsconfig file with dependencies and exit.
virtual UbtConfig UBALocal(bool present=true)
Whether the UnrealBuildAccelerator (local only) executor will be used.
virtual UbtConfig ForceIncludeOrder(EngineIncludeOrderVersion? val=null)
Force the include order to a specific version. Overrides any Target and Module rules.
virtual UbtConfig LinkerArguments(object val=null)
Additional arguments to pass to the linker.
virtual UbtConfig VSCode(bool present=true)
The mode to execute Generate project files for Visual Studio Code.
virtual UbtConfig CLion(bool present=true)
The mode to execute Generate project files for CLion.
virtual UbtConfig HeadersOnly(bool? val=null)
When used with -IncludeHeaders, only header files will be compiled.
virtual UbtConfig CacheSalt(object val=null)
Salt value to modify cache bucket calculation, can be used to invalidate cached actions outputs.
virtual UbtConfig NoArtifactWrites(bool present=true)
If set, artifacts will be written.
virtual UbtConfig AutoRTFMVerify(bool present=true)
Whether to run LLVM verification after the AutoRTFM compiler pass. This is used by our compiler folks...
virtual UbtConfig UBACache(object val=null)
Address of the uba cache service. Will automatically use cache if connected.
virtual UbtConfig IncludeHeaders(bool? val=null)
Adds header files in included modules to the build.
virtual UbtConfig MergeModules(bool? val=null)
Experimental: Merge modular modules into combined libraries. Sets LinkType to Modular and enables bSt...
virtual UbtConfig EnablePlugin(params object[] values)
Additional plugins that should be included for this target.
virtual UbtConfig ImportCertificate(object val=null)
Imports the given certificate (inc private key) into a temporary keychain before signing.
virtual UbtConfig ObjSrcMap(object val=null)
Whether we should export a file containing .obj to source file mappings.
virtual UbtConfig NoVFS(bool present=true)
Experimental work in progress: Set flags to use toolchain virtual file system support,...
virtual UbtConfig ArtifactWrites(bool present=true)
If set, artifacts will be written.
virtual UbtConfig PreprocessDepends(bool? val=null)
Generate dependency files by preprocessing. This is only recommended when distributing builds as it a...
virtual UbtConfig Pie(bool? val=null)
Enable Position Independent Executable (PIE). Has an overhead cost.
virtual UbtConfig Sarif(bool? val=null)
Whether .sarif files containing errors and warnings are written alongside each .obj,...
virtual UbtConfig PCHPerformanceIssueWarningLevel(WarningLevel? val=null)
Indicates what warning/error level to treat potential PCH performance issues.
virtual UbtConfig PackagePath(object val=null)
Package full path (directory + filename) where to store input files used at link time Normally used t...
virtual UbtConfig CustomConfig(object val=null)
Extra subdirectory to load config files out of, for making multiple types of builds with the same pla...
virtual UbtConfig PdbAltPath(object val=null)
Specify an alternate location for the PDB file. This option does not change the location of the gener...
virtual UbtConfig Rebuild(bool? val=null)
Clean the target before trying to build it.
virtual UbtConfig EnableTSan(bool? val=null)
Enables thread sanitizer (TSan) Enables thread sanitizer (TSan).
virtual UbtConfig BuildPlugin(params object[] values)
Additional plugins that are built for this target type but not enabled.
virtual UbtConfig SuppressSDKWarnings(bool? val=null)
Whether or not to suppress warnings of missing SDKs from warnings to LogEventType....
virtual UbtConfig DisableMergingUnityFiles(bool present=true)
Whether to merge module and generated unity files for faster compilation.
virtual UbtConfig UpdatedCPPMacro(bool? val=null)
Enables updated __cplusplus macro (/Zc:__cplusplus).
virtual UbtConfig FailIfGeneratedCodeChanges(bool? val=null)
If true, fail if any of the generated header files is out of date. Consider any changes to output fil...
UbtConfig BuildConfiguration(Action< BuildConfigurationConfig > configurator)
Global settings for building. Should not contain any target-specific settings.
virtual UbtConfig UseIris(bool present=true)
Whether to use Iris.
virtual UbtConfig NonDeterministic(bool present=true)
Set flags require for deterministic compiling and linking. Enabling deterministic mode for msvc disab...
virtual UbtConfig NoUBA(bool present=true)
Whether the UnrealBuildAccelerator executor will be used.
virtual UbtConfig Makefile(bool present=true)
The mode to execute Generate Linux Makefile Generate Makefile.
virtual UbtConfig StaticAnalyzerOutputType(WindowsStaticAnalyzerOutputType? val=null)
The output type to use for the static analyzer. The output type to use for the static analyzer....
virtual UbtConfig UBAPrintSummary(bool present=true)
Prints summary of UBA stats at end of build.
virtual UbtConfig MergePluginsExcluded(params object[] values)
Experimental: List of plugins (and their dependencies) to explicitly exclude when processing merged l...
virtual UbtConfig Test(bool? val=null)
Run testing scripts.
virtual UbtConfig DisableInliningGenCpps(bool? val=null)
Disable supports for inlining gen.cpps.
virtual UbtConfig DebugInfoLineTablesOnlyPlugins(params object[] values)
Plugins that should emit line number tables instead of full debug information for compilers that supp...
virtual UbtConfig CodeCoverage(bool present=true)
Whether the target requires code coverage compilation and linking.
virtual UbtConfig UBANoRetry(bool present=true)
When set to true, actions that fail locally with certain error codes will retry without uba.
virtual UbtConfig QMakefile(bool present=true)
The mode to execute Generate project files for QMake.
virtual UbtConfig DebugInfoInlineLineTablesPlugins(params object[] values)
Modules that should include line number tables for inline functions for compilers that support doing ...
virtual UbtConfig NoLinkerDebugInfo(bool? val=null)
If you supply -NoDebugInfo, windows platforms still create debug info while linking....
virtual UbtConfig EnableUBSan(bool? val=null)
Enables undefined behavior sanitizer (UBSan) Enables undefined behavior sanitizer (UBSan).
UbtConfig AppleTargetRules(Action< AppleTargetRulesConfig > configurator)
Apple-specific target settings.
virtual UbtConfig ScudoMemoryTracing(bool present=true)
Adds LD_PRELOAD'ed .so to capture all malloc/free/etc calls to libc.so and route them to our memory t...
virtual UbtConfig UBAShuffleCache(bool? val=null)
Shuffle the list of cache servers before each read attempt.
UbtConfig PipInstall(Action< PipInstallConfig > configurator)
Identifies plugins with python requirements and attempts to install all dependencies using pip.
Unreal Build Tool defines the Unreal project structure and provides unified source building utilities...
Definition UbtConfig.cs:13
WindowsStaticAnalyzerOutputType
Output type for the static analyzer. This currently only works for the Clang static analyzer....
@ Html
Output the analysis to an HTML file in the object folder.
@ Text
Output the analysis to stdout.
StaticAnalyzerOutputType
Output type for the static analyzer. This currently only works for the Clang static analyzer....
MinimumCpuArchitectureX64
Specifies the architecture for code generation on x64 for windows platforms. Note that by enabling th...
@ AVX
Enables the use of Intel Advanced Vector Extensions instructions.
@ AVX512
Enables the use of Intel Advanced Vector Extensions 512 instructions.
@ AVX2
Enables the use of Intel Advanced Vector Extensions 2 instructions.
OptimizationMode
Optimization mode for compiler settings.
@ Size
Favor minimal code size.
@ SizeAndSpeed
Somewhere between Speed and Size.
FPSemanticsMode
Floating point math semantics.
@ Imprecise
FP math isn't IEEE-754 compliant: the compiler is allowed to transform math expressions in a ways tha...
@ Precise
FP math is IEEE-754 compliant, assuming that FP exceptions are disabled and the rounding mode is roun...
DebugInfoMode
Debug info mode for compiler settings to determine how much debug info is available.
@ EngineOnly
Only include debug info for engine modules and plugins.
@ Engine
Enable debug info for engine modules.
@ Project
Enable debug info for project modules.
@ ProjectOnly
Only include debug info for project modules and project plugins.
@ Full
Include full debugging information for all modules.
@ EnginePlugins
Enable debug info for engine plugins.
@ ProjectPlugins
Enable debug info for project plugins.
WarningLevel
Controls how a particular warning is treated.
@ Warning
Output warnings normally.
@ Error
Output warnings as errors.
@ Off
Do not display diagnostics.
CStandardVersion
Specifies which C language standard to use. This enum should be kept in order, so that toolchains can...
WindowsCompiler
Available compiler toolchains on Windows platform.
@ VisualStudio2019
Visual Studio 2019 (Visual C++ 16.0)
@ VisualStudio2015_DEPRECATED
Visual Studio 2015 (Visual C++ 14.0)
@ VisualStudio2017
Visual Studio 2017 (Visual C++ 15.0)
@ Clang
Use Clang for Windows, using the clang-cl driver.
@ VisualStudio2015
Visual Studio 2015 (Visual C++ 14.0)
@ VisualStudio2022
Visual Studio 2022 (Visual C++ 17.0)
@ Intel
Use the Intel C++ compiler.
UnrealTargetConfiguration
The type of configuration a target can be built for.
@ Development
Development configuration.
@ DebugGame
DebugGame configuration; equivalent to development, but with optimization disabled for game modules.
ProjectFileFormat
The type of project files to generate.
DocumentationType
Enum for the type of documentation to generate.
StaticAnalyzer
Which static analyzer to use.
EngineIncludeOrderVersion
What version of include order to use when compiling.
@ Oldest
Contains the oldest version of include order that the engine supports.
@ Unreal5_1
Include order used in Unreal 5.1.
@ Unreal5_0
Include order used in Unreal 5.0.
partial record class UnrealToolArgument(string Name, string? Value=null, char Setter='=', UnrealToolArgumentMeta? Meta=null)
Argument for an Unreal tool.
HotReloadMode
The current hot reload mode.
Arm64TargetCpuType
Target ARM64 CPU for codegen. This defines different ARM ISA and extension targets.
@ Graviton2
AWS Graviton2 CPU - ARM Neoverse N1 uArch with ARMv8.2-A ISA + FP16 + rcpc + dotprod + crypto extensi...
@ Graviton3
AWS Graviton3 CPU - ARM Neoverse V1 uArch with AMRv8.4-A ISA + SVE + bf16 + rng + crypto extensions.
WindowsStaticAnalyzer
Which static analyzer to use.
@ VisualCpp
Use the built-in Visual C++ static analyzer.
@ None
Do not perform static analysis.
@ PVSStudio
Use PVS-Studio for static analysis.
TargetType
The type of target.
@ Editor
Uncooked modular editor executable and DLLs (UE4Editor.exe, UE4Editor*.dll, GameName*....
@ Client
Cooked monolithic game client executable (GameNameClient.exe, but no server code)
@ Game
Cooked monolithic game executable (GameName.exe). Also used for a game-agnostic engine executable (UE...
@ Program
Program (standalone program, e.g. ShaderCompileWorker.exe, can be modular or monolithic depending on ...
@ Server
Cooked monolithic game server executable (GameNameServer.exe, but no client code)
StaticAnalyzerMode
Output type for the static analyzer. This currently only works for the Clang static analyzer....
@ Deep
Default deep analysis.
@ Shallow
Quick analysis. Not recommended.
CppStandardVersion
Specifies which language standard to use. This enum should be kept in order, so that toolchains can c...
@ Latest
Latest standard supported by the compiler.
UnrealCompatibility
A flag enum representation for checking the Unreal version compatibility of various features....