Commit Graph

97 Commits

Author SHA1 Message Date
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
joe kirchoff
784e7f77d2 UnrealBuildTool: Platform validation is not required when calling QueryTargetMode and is causing an exception on windows if no msvc toolchain is available
#rnx
#jira UE-176380
#preflight 63e2c206902d6ba787b52852
#rb Josh.Adams

[CL 24062302 by joe kirchoff in ue5-main branch]
2023-02-07 18:16:52 -05:00
Joe Kirchoff
a46c2bb6c1 UnrealBuildTool: Reference any Target.cs files as rules dependencies so modifying them will update the Makefile, as these TargetRules can be referenced
#rnx
#rb Tim.Smith
#jira UE-168481
#preflight 63d7fa38d21dbe1d29525dd3

[CL 23910603 by Joe Kirchoff in ue5-main branch]
2023-01-30 12:31:04 -05:00
josh adams
1610c3bee3 UnrealArch/UnrealArchitectures changes
- Creates the UnrealArchitectures class, which wraps a list of UnrealArch objects
 - UnrealArch is a single architecture, expandable enum-like struct
 - There is no more concept of "no/default architecture", there is always a valid active architecture when building
 - Most uses of "string Architecture" are replaced with one of the two above, depending if multiple architectures are supported or not
 - UnrealArch has some platform-extensions for platform-specific naming (like Linux adds in LinuxName that turns, for instance, Arm64 -> aarch64-unknown-linux-gnueabi, which is used in folder names, etc)
 - UnrealArch has bIsX64 which can be used determine intel instruction set (as opposed to arm)
 - TargetRules class has an "Architecture" accessor that will return a single architecture if the active architectures is a single architecture, or throw an exception if multiple. This is useful in a majority of the cases where a paltform can only have a single architecture active in TargetRules (microsoft platforms, for instance, will create separate targets when compiling multiple architectures at once)
 - Added UnrealArchitectureConfig class, which contains all the architecture information for a platform (what architectures are supported, what ones are currently active for given project, etc)

#preflight 63c81fb5b065224750a1759e
#rb mike.fricker,roman.dzieciol,joe.kirchoff,dmytro.vovk,brandon.schaefer [various parts]
#p4v-preflight-copy 23562471

[CL 23829977 by josh adams in ue5-main branch]
2023-01-24 09:30:28 -05:00
bryan sefcik
377f3c2775 * Updated AssemblyUtils to add an event callback to AssemblyResolve when calling AddFileToAssemblyCache. You had to before explicitly call InstallRecursiveAssemblyResolver to get the assembly cache resolver to work.
* Updated RulesAssembly to add the parent assembles to the assembly cache so the types in the other assemblies can be used when calling the constructor.
#preflight 63cf2823b84de45a0c12a6a4

[CL 23825371 by bryan sefcik in ue5-main branch]
2023-01-23 19:47:44 -05:00
bryan sefcik
0051530b8a Added the parent rule assemblies to the referencedassemblies list when compiling the rule assemblies dlls so the parent code can be used/referenced.
#preflight 63cef47d574ab9cae4868468

[CL 23821342 by bryan sefcik in ue5-main branch]
2023-01-23 16:10:30 -05:00
Jason Nadro
a673e16ce5 Added the ability to do Unreal Insights traces of the Shader Compiler Worker process.
This can be enabled by modifying `UnrealEngine\Engine\Saved\UnrealBuildTool\BuildConfiguration.xml` like so:

    <?xml version="1.0" encoding="utf-8" ?>
    <Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
        <BuildConfiguration>
            <bShaderCompilerWorkerTrace>true</bShaderCompilerWorkerTrace>
        </BuildConfiguration>
    </Configuration>

- Added a build configuration xml value, `bShaderCompilerWorkerTrace`.
- Turning this on will set USE_SHADER_COMPILER_WORKER_TRACE=1
- Move the parameter -nothreading to be set when we launch the process instead of internally as an extra cmd line arg.
- Unreal Insights uses a separate thread to send events so threading support is needed for the program.  When we have USE_SHADER_COMPILER_WORKER_TRACE enabled we need to turn off `-nothreading`.
- When USE_SHADER_COMPILER_WORKER_TRACE is enabled we pass in `-trace=default` to get CPU event markers.
- The SCW program needs to turn on the following defines to be able to perform CPU and memory traces:
	ENABLE_LOW_LEVEL_MEM_TRACKER=1
	UE_MEMORY_TAGS_TRACE_ENABLED=1
	UE_TRACE_ENABLED=1
- Instrument Shader Compiler Worker with TRACE_CPUPROFILER_EVENT_SCOPE.  This are no-ops when this is turned off.

todo: Make the shader compiler worker inherit the trace args from the main process it was launched from.

#rb Yuriy.ODonnell
#jira none
#preflight 634ef80269246074db9637c2

[CL 22625183 by Jason Nadro in ue5-main branch]
2022-10-19 10:33:36 -04:00
bryan sefcik
b3f66b2e18 Added GetModuleDirectory which allows you to get the directory of the passed in module. This makes it easier to include directories from other modules.
#jira
[FYI] joe.kirchoff
#preflight 634de3f25f008d633fd22de1

[CL 22594094 by bryan sefcik in ue5-main branch]
2022-10-18 00:55:33 -04:00