Commit Graph

439 Commits

Author SHA1 Message Date
brandon schaefer
53cc4b454d Enable compressing debug files by default on Linux
#rb Joe.Kirchoff
#jira UE-126026

#ushell-cherrypick of 36310290 by Brandon.Schaefer

[CL 36750732 by brandon schaefer in 5.5 branch]
2024-10-01 18:16:55 -04:00
joe kirchoff
33d4c1a971 UnrealBuildTool: Move min arch support up to ClangToolChain so it can be applied to any clang platform
#rnx

[CL 36214206 by joe kirchoff in 5.5 branch]
2024-09-11 19:16:10 -04:00
Ryan Hummer
4af2fd066d Updating Dev-Release-5.5 from Main at CL #36144969
#okforversepublic

[CL 36146571 by Ryan Hummer in Dev-5.5 branch]
2024-09-10 10:26:02 -04:00
michael nicolella
63b981f08b ubt: added build options for enabling the autortfm verifier
#rb Joe.Kirchoff, neil.henning

[CL 35550129 by michael nicolella in ue5-main branch]
2024-08-14 17:27:14 -04:00
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
paul chipchase
0376e1d8b2 Added command line switch '-ApplyIoStoreOnDemand' to UAT BuildCookRun that will force the IoStoreOnDemand module into the target project and force on additional settings to allow IoStoreOnDemand to work.
#rb Per.Larsson
#jira UE-218584
#rnx

- This is only intended for development and testing IoStoreOnDemand as it allows us to apply it to a project without changing the project files on disk. This should not be used to enable the feature on a project in production.

### Enabling the code module
- When forcing on IoStoreOnDemand, BuildCookRun will pass '-CompileIoStoreOnDemand' to UnrealBuildTool which will set 'bCompileIoStoreOnDemand' to true in the target rules. This in turn will add the 'IoStoreOnDemand' module to the Engine module but only for runtime targets.
- None of this should be used when enabling the feature for a project permanentl, instead just add 'IoStoreOnDemand' module to your project's *.build.cs

### Staging SSL certificates
- IoStoreOnDemand needs access to the engine/project#s SSL certificates at runtime  so we need to stage them, which is done by forcing 'bStageSSLCertificates' to be true during BuildCookRun.
- To do this properly for a project set ini:Engine:[/Script/Engine.NetworkSettings]:n.VerifyPeer=true

### Generate Chunks
- In order for IoStoreOnDemand to work we need to generate chunks (more than one container file) which can be done by forcing ProjectParams.Manifests to true.
- To do this properly for a project set ini:Game:[/Script/UnrealEd.ProjectPackagingSettings]:bGenerateChunks=true

### Pak Rules
- Once chunked builds are enabled IoStoreOnDemand will require at least one PakRule that sets  'bOnDemand' to true. So first we check to see if any rules like this for the existing project and if not we force add one via CreateIoStoreOnDemandPakRules. This rule will include all *.ubulk and *.uptnl files except ones found under a \map\ directory. This is because some level bulkdata files can get too large for IoStoreOnDemand to support so excluding anything under a map directory is a quick and easy way to try and work around that. The end result is that other than map data, pretty much all bulkdata will end up on demand, which is a good stress test for the system but not a great representation on how the system should be used.
- If you are trying to set up rules properly you'd need to consider what data you actually want to stream over the network and what data you want to remain on disk, which would greatly depend on your project set up. One popular choice is to only stream optional (.uptnl) bulkdata and leave the required bulkdata to be found on disk.

### Enabling Persistent Local Storage
- IoStoreOnDemand requires persistent local storage to be set aside for it's caching which may or may not require special set up for a project depending on the target platform. If we detect that the current project has not been set up for persistent local storage we will attempt to enable it for the project during staging.
- To set this up properly you will need to consult the documentation for your target platform and follow the instructions.

[CL 34702097 by paul chipchase in ue5-main branch]
2024-06-27 02:50:43 -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
brandon schaefer
22596fd074 Use Joe.K change to use ForceNoAutoRTFMCompiler in the Get of bUseAutoRTFMCompiler
#rb ted.percival

[CL 34572441 by brandon schaefer in ue5-main branch]
2024-06-21 15:17:59 -04:00
joe kirchoff
761ea07fa2 UnrealBuildTool: Use warning level for undefined identifier property
#rnx
#jira UE-200408

[CL 34534901 by joe kirchoff in ue5-main branch]
2024-06-20 13:13:35 -04:00
neil henning
9a5abf74c4 Fix the FTraceFilter transactional bug by introducing a new transactionally safe critical section and scope lock for it to use.
I also worked out how to add a new AutoRTFMEngineTests target that lets us test a much greater surface area of the engine.

[CL 34452505 by neil henning in ue5-main branch]
2024-06-18 04:46:04 -04:00
joe kirchoff
73e0f94771 UnrealBuildTool: Workaround for setting uba compression in the TargetRules
#rnx
#jira UE-216364

[CL 34385092 by joe kirchoff in ue5-main branch]
2024-06-14 17:21:09 -04:00
brandon schaefer
d26b225a62 Make a force disable AutoRTFM bool
#rb Brandon.Schaefer

[CL 34383045 by brandon schaefer in ue5-main branch]
2024-06-14 16:25:01 -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
b0488baaf2 UnrealBuildTool: Add RequiresUniqueBuildEnvironment to TargetType
#rnx

[CL 34294058 by joe kirchoff in ue5-main branch]
2024-06-11 18:45:36 -04:00
anton dunchev
e762a573a5 [UE] Review suggestions: renamed the bTrackRHIResourceInfo to bTrackRHIResourceInfoForTest
#rb Bob.Tellez
#rnx

[CL 34245598 by anton dunchev in ue5-main branch]
2024-06-10 13:49:45 -04:00
anton dunchev
5291be4e72 [UE] Fixed CIS error related to compile configurations differences. DebugGame and Development can't differ.
#jira UE-216336
#rb Joe.Kirchoff
#rnx

[CL 34243411 by anton dunchev in ue5-main branch]
2024-06-10 12:58:15 -04:00
anton dunchev
8b0b461407 [RHI] Added shader map and shader library listing commands that let you analyse the memory footprint of those structures.
[FYI] j.baumgartner
#rb serge.bernier
#tests local

[CL 34035856 by anton dunchev in ue5-main branch]
2024-05-31 13:17:18 -04:00
joe kirchoff
a38acf86f5 UnrealBuildTool: Fix config setting for TargetRules.bAllowUbaCompression
#rnx
#jira UE-214517

[CL 34034905 by joe kirchoff in ue5-main branch]
2024-05-31 12:24:32 -04:00
joe kirchoff
ab44468a4e UnrealBuildTool: Print upgrade warning if a project is using unsupported C++ standard versions
#rnx
#jira UE-207533

[CL 33956580 by joe kirchoff in ue5-main branch]
2024-05-28 18:33:55 -04:00
zach brockway
36fd80901e UnrealBuildTool: Add a bGenerateProgramProject flag to TargetRules to force a target to be treated as a program during project file generation.
#jira UE-214748
#rb Joe.Kirchoff

[CL 33849589 by zach brockway in ue5-main branch]
2024-05-22 19:19:22 -04:00
zach brockway
f74f50ff06 UnrealBuildTool: Introduce TargetRules.bAllowEnginePluginsEnabledByDefault, analogous to (the inverse of) "DisableEnginePluginsByDefault" in the project descriptor.
This is passed through to the target receipt, and respected in FPluginManager.

#jira UE-214749
#rb Joe.Kirchoff

[CL 33811096 by zach brockway in ue5-main branch]
2024-05-21 17:30:36 -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
marc audy
ecd20a51b6 Allow ShowIncludes to work for clang as well as windows
#rb christopher.waters, Joe.Kirchoff

[CL 33665843 by marc audy in ue5-main branch]
2024-05-15 14:51:47 -04:00
henrik karlsson
3c9abe4b45 [BuildSettings]
* Added GetBuildUser, GetBuildUserDomain and GetBuildMachine to BuildSettings. These functions will return private information about the build if Target.bEnablePrivateBuildInformation is set to true. If set to false all functions will return empty strings

[CL 33319106 by henrik karlsson in ue5-main branch]
2024-04-30 01:02:04 -04:00
eric day
409b8132c8 Add WITH_CLIENT_CODE macro similar to WITH_SERVER_CODE.
#rnx

#rb Chris.Varnsverry, michael.atchison, Rob.Cannaday

[CL 33240268 by eric day in ue5-main branch]
2024-04-25 14:58:58 -04:00