Commit Graph

112 Commits

Author SHA1 Message Date
joe kirchoff
6368dc0f37 UnrealBuildTool: Add KnownLogEvents entry for RulesAssembly issues
#jira UE-202756
#rnx

[CL 35469183 by joe kirchoff in ue5-main branch]
2024-08-12 17:31:24 -04:00
zach brockway
dd5c061b55 UnrealBuildTool: Add a bExplicitTargetForType flag to TargetRules, to opt out of consideration by GetTargetNameByType.
This prevents myriad -TargetType=Editor invocations of UBT from suddenly becoming ambiguous as we introduce a new pseudo-Editor target.

#jira UE-214748
#rb Joe.Kirchoff

[CL 34657431 by zach brockway in ue5-main branch]
2024-06-25 17:16:07 -04:00
joe kirchoff
ef5f3b80d9 UnrealBuildTool: Replace usage of obsolete FormatterServices.GetUninitializedObject
#rnx

[CL 34321240 by joe kirchoff in ue5-main branch]
2024-06-12 16:17:29 -04:00
joe kirchoff
088dc4b8b9 UnrealBuildTool: Initial support for merging modular builds into fewer libraries, highly experimental
#rnx
#rb henrik.karlsson

[CL 33732096 by joe kirchoff in ue5-main branch]
2024-05-17 14:47:05 -04:00
joe kirchoff
65f7eab2cd UnrealBuildTool: Resolve CA2254, IDE0011, IDE0017, IDE0030, IDE0031, IDE0037, IDE0056, IDE0075, IDE2000, IDE2001
#rnx

[CL 32711093 by joe kirchoff in ue5-main branch]
2024-04-03 17:18:04 -04:00
joe kirchoff
a20c9fbb9e UnrealBuildTool: Format documents, remove and sort usings
#rnx

[CL 32700883 by joe kirchoff in ue5-main branch]
2024-04-03 12:22:43 -04:00
joe kirchoff
e895acc0bb UnrealBuildTool: Resolve IDE0018, IDE0019, IDE0034, IDE0038, IDE0041, IDE0054, IDE0057, IDE0074, IDE0090
#rnx

[CL 32686487 by joe kirchoff in ue5-main branch]
2024-04-02 19:54:03 -04:00
josh adams
c0f2905ce7 - Added a method for Shared build environment builds to have certain modules marked as caring about SDK version overrides for some platforms - if any of those platforms are overridden, the DLL will be written to the project Binaries dir instead of Engine (set bAllowSDKOverrideModulesWithSharedEnvironment = true in a Target.cs)
- Added ability to optionally skip SDK validation when making a Target instance even if we don't want to skip Target validation (used when we make the base UnrealEditor target to compare to project's Editor target - we don't need to manage SDK for that temporary UnrealEditor target).
- ShaderCompileWorker is now BuildEnvironment.UniqueIfNeeded, which will build into the project binaries dir if needed (based on per-project SDK override)
- UnrealPak is marked as not caring about an SDK versions so it can be built along with SCW that does care
- Added $(BinaryDir) variable to UEBuildTarget, etc, for the location of the first Binary in the output binaries
#rb David.Harvey, Joe.Kirchoff

[CL 31661939 by josh adams in ue5-main branch]
2024-02-20 18:39:20 -05:00
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