Commit Graph

104 Commits

Author SHA1 Message Date
joe kirchoff
2ccf3f04b3 UnrealBuildTool: TargetRules cleanup
* Change (most) fields to properties
* Naming rule fixes for local variables
* Remove unnecessary default values
* Move ReadOnlyTargetRules to new file
* Remove RequiresUniqueBuildEnvironment from obsolete properties
* Document formatting

#rnx

[CL 30415265 by joe kirchoff in ue5-main branch]
2023-12-20 12:39:13 -05:00
josh adams
0ae7bb4007 [Backout] - CL30103804
[FYI] alex.kahn
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL30097541 - CIS Warning
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Added a new TargetBuildEnvronment - UniqueIfNeeded. This will use Shared if possible, but if a property that requires unique environment, of a project has overridden an SDK version, Unique will beused instead
#rb joe.kirchoff

[CL 30118373 by josh adams in ue5-main branch]
2023-12-05 10:00:51 -05:00
alex kahn
3a28b419ea [Backout] - CL30097541 - CIS Warning
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Added a new TargetBuildEnvronment - UniqueIfNeeded. This will use Shared if possible, but if a property that requires unique environment, of a project has overridden an SDK version, Unique will beused instead
#rb joe.kirchoff

[CL 30103827 by alex kahn in ue5-main branch]
2023-12-04 19:40:01 -05:00
josh adams
41853b01e6 - Added a new TargetBuildEnvronment - UniqueIfNeeded. This will use Shared if possible, but if a property that requires unique environment, of a project has overridden an SDK version, Unique will beused instead
#rb joe.kirchoff

[CL 30097554 by josh adams in ue5-main branch]
2023-12-04 17:25:57 -05:00
david harvey
916805a126 Adding a module groups attribute for module rules.
Expected usage:

```
[ModuleGroups("MyGroup"]
public class MyModule : ModuleRules {... }

public class MyOtherModule : ModuleRules
{
    ...
    PrivateDependencyModuleNames.AddRange( GetModulesInGroup("MyGroup") );
}
```

#rnx
#rb Josh.Adams

[CL 29270167 by david harvey in ue5-main branch]
2023-10-31 06:32:45 -04:00
joe kirchoff
ac8b621482 UnrealBuildTool: Add a few additional CompilationResult so .cs issues can be detected by horde more easily
#jira UE-197248

[CL 28597572 by joe kirchoff in ue5-main branch]
2023-10-09 16:37:58 -04:00
joe kirchoff
46eab319e3 UnrealBuildTool: Add the ability to disable debugging info for select modules and plugins via TargetRules configuration
Obsolete bDisableDebugInfo and replace with TargetRules.DebugInfo which is a flags enum DebugInfoMode. TargetRules.DebugInfo can be set to any or all of [Engine, EnginePlugins, Project, ProjectPlugins], whichever flags are set will have debug info enabled for the modules in those groups if the Target would otherwise has debug info enabled
* DebugInfoMode.None is equalivant to bDisableDebugInfo=true (-NoDebugInfo will still set this)
* DebugInfoMode.ProjectOnly = Project | ProjectPlugins
* DebugInfoMode.EngineOnly = Engine | EnginePlugins
* DebugInfoMode.Full = Engine | EnginePlugins | Project | ProjectPlugins
* DebugInfoMode.Full is equalivant to bDisableDebugInfo=false (the current default)
Add TargetRules.DisableDebugInfoModules, this is a list of module names that should disable debug info regardless of TargetRules.DebugInfo
Add TargetRules.DisableDebugInfoPlugins, this is a list of plugin names that should disable debug info for all of their modules regardless of TargetRules.DebugInfo

[CL 28544448 by joe kirchoff in ue5-main branch]
2023-10-06 12:28:59 -04:00
tim smith
d758896471 Move VerseVM to CoreUObject to facilitate the merging of UEGC and VerseGC
#rb saam.barati phil.pizlo

[CL 27374952 by tim smith in ue5-main branch]
2023-08-25 09:08:53 -04:00
joe kirchoff
9b2f302d4b UnrealBuildTool: Always enable ValidateFormatStrings for engine modules, and create a pch variant for modules that opt out
#rnx

[CL 27352456 by joe kirchoff in ue5-main branch]
2023-08-24 14:59:44 -04:00
joe kirchoff
092ff454ad [Backout] - CL27330584
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Always enable ValidateFormatStrings for engine modules, and create a pch variant for modules that opt out

#rnx

[CL 27331965 by joe kirchoff in ue5-main branch]
2023-08-23 22:16:13 -04:00
joe kirchoff
c0b34f9bb3 UnrealBuildTool: Always enable ValidateFormatStrings for engine modules, and create a pch variant for modules that opt out
#rnx

[CL 27330607 by joe kirchoff in ue5-main branch]
2023-08-23 20:55:29 -04:00
kirill zorin
6b206ca86d Turning on FormatStringSan in UBT
#rb joe.kirchoff

[CL 27314833 by kirill zorin in ue5-main branch]
2023-08-23 14:49:29 -04:00
chris constantinescu
199373a78d UBT new plugin test - generate solution doesn't include create new target
#rb Jerome.Delattre, Eric.Day
#jira UE-192402

[CL 26919864 by chris constantinescu in ue5-main branch]
2023-08-08 12:26:25 -04:00
kirill zorin
b36d22897c Deprecating non-TObjectPtr FReferenceCollector::AddReferencedObject(s) API.
#rb andrew.scheidecker, marc.audy

[CL 26821499 by kirill zorin in ue5-main branch]
2023-08-03 14:53:09 -04:00
christopher waters
47426db352 Adding UnrealIntermediateEnvironment to allow different intermediate paths based on build settings.
This removes the old hack that renames the target based on nonunity being set while also adding a new intermediates folder for IWYU.

#jira UE-190274
#rb joe.kirchoff

[CL 26514944 by christopher waters in ue5-main branch]
2023-07-21 12:08:09 -04:00
Josh Adams
2a106c7450 - Added a few new properties to ModuleRules (.Build.cs files) to make handling PlatformExtensions easier to manage platform extensions:
* bIsPlatformExtension - true if there's a platform extension .Build.cs with a subclass
  * PlatformDirectory - location of the main Build.cs or the platform extension's subclass Build.cs
  * PlatformModuleDirectory - string version of above
  * PlatformSubdirectoryName - this is the name underneath the ModuleDirectory that platform files are in, or '.' (because platform extensions are already under a platform dir, we don't add another directory - there would be ThirdParty/MyLib/MyPlatform/foo.lib vs Platforms/MyPlatform/ThirdParty/MyLib/foo.lib, in the extension case, there's no MyPlatform directory underneath the module dir)

- With these changes, basic Build.cs files can be written without needing to know if a platform is an extension or not, and the extension subclasses can be much simpler
#rb david.harvey

[CL 26483586 by Josh Adams in ue5-main branch]
2023-07-20 08:31:25 -04:00
josh adams
305c260069 - Moved SDK versions (MainVersion and Min/Max SDK version) from C# strings to SDK.json files in the Platform's Config folder
- Allow for per-project override in a project's platform's config folder (this is merging with my other work on per-project SDKs and validation of multi-target builds)
- More versions will move over after this
#rb david.harvey

[CL 26150552 by josh adams in ue5-main branch]
2023-06-21 11:21:01 -04:00
joe kirchoff
acacd6a8de UnrealBuildTool: More automated code cleanup
* Use object type rather than var
* Remove double newlines
* Use pattern matching

#rnx
#preflight 647780095d23eca37d28a387

[CL 25706751 by joe kirchoff in ue5-main branch]
2023-05-31 13:37:21 -04:00
joe kirchoff
acf80ab609 [Backout] - CL25694851
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: More automated code cleanup

#rnx

[CL 25695155 by joe kirchoff in ue5-main branch]
2023-05-30 19:55:37 -04:00
joe kirchoff
7ed1a39679 UnrealBuildTool: More automated code cleanup
#rnx

[CL 25694864 by joe kirchoff in ue5-main branch]
2023-05-30 19:36:05 -04:00
joe kirchoff
c04da27b3b UnrealBuildTool: More automated code cleanup
#rnx
#preflight 64767efb4b1ead7c7f428c7a

[CL 25693857 by joe kirchoff in ue5-main branch]
2023-05-30 18:59:32 -04:00
joe kirchoff
36d266e932 UnrealBuildTool: Automated code cleanup
#rnx
#preflight 6476799e947ff6973c225619

[CL 25693241 by joe kirchoff in ue5-main branch]
2023-05-30 18:38:07 -04:00
ionut matasaru
1172a216a1 UBT: Deprecated TragetInfo::bUseMallocProfiler toggle. No longer used as MallocProfiler2 and FMallocProfiler runtime is removed in favor of UnrealInsights.
#jira UE-141779
#rb Joe.Kirchoff
#preflight 64380bdbae4448e6f909db87

[CL 25142451 by ionut matasaru in ue5-main branch]
2023-04-21 02:24:21 -04:00
bryan sefcik
241a1f79d2 Fixed an issue where other target test settings would leak into other tests.
#rb joe.kirchoff
#preflight 6424cc08b01a25d6a00b5cd1

[CL 24848706 by bryan sefcik in ue5-main branch]
2023-03-29 20:09:34 -04:00
bryan sefcik
38d227cc6d Updated some functions to take an IEnumerable instead of specific types. This is make sure containers don't get modified by the function being called.
#fyi joe.kirchoff
#preflight 6424aeb25e52099fe397a3bd

[CL 24846671 by bryan sefcik in ue5-main branch]
2023-03-29 18:01:18 -04:00