- 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]
Source code indexing allows Visual Studio to automatically fetch the right source code files from Perforce when debugging builds/crashdumps.
Previously, we had this functionality available only on Windows in the form of SrcSrv build task (build graph). This task takes generated pdbs and embeds information about the source code used into them. However, this functionality doesn't translate well into similar features on other platforms.
Resolved by extending SymStore task to handle source indexing in additional to uploading symbols to the symbol store. SrcSrv remains functional, but it still works only on Windows. For this reason, SymStore becomes the preferred solution as it's more general.
Fixed a few additional problems, both in the task itself and our game's build graph.
#preflight 63727a48ee4d25f90ace140b
#rb Robert.Millar
#jira UE-70463
[CL 23123619 by Wojciech Krywult in ue5-main branch]
Allows for using alternative but compatible Docker implementations.
#rb Ben.Marsh
#jira none
#preflight none
[CL 22332338 by carl bystrom in ue5-main branch]
Turns on automatically if CommandUtils.IsBuildMachine is true or the CompileTask sets AllowAllCores to true
#rnx
#jira none
#rb none
#preflight 633b3aaf3629a1a4f92f3ef1
[CL 22323425 by ryan hummer in ue5-main branch]
* Moved XML script parsing into UAT. We don't need to evaluate this in Horde.
* Added custom node types for script and expression nodes, rather than wrapping native nodes with a custom script task.
#preflight 62b31b76650c9d58579b2ea6
[CL 20773724 by Ben Marsh in ue5-main branch]
Supporting BuildKit and .dockerignore files will help improve performance without resorting to temporary staging of files.
#preflight 6275287ed8373707f211ffa8
[CL 20075007 by carl bystrom in ue5-main branch]