- 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]
- windows-based platform extensions broke when old versions of openssl were deleted.
- now they re-use the same settings as Win64
#jira UE-131865
#rnx
#preflight 623daddb5c488c89d6e008f6
#rb Jeff.Newquist
#fyi Pavel.Punsky
[CL 19510743 by David Harvey in ue5-main branch]
#test Tested on other projects
#ROBOMERGE-AUTHOR: pavel.punsky
#ROBOMERGE-SOURCE: CL 19474533 via CL 19489303 via CL 19489393
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v936-19480137)
[CL 19489920 by pavel punsky in ue5-main branch]
Mac version contains arm64 support
#test Tested on other projects (EOS Voice)
#ROBOMERGE-AUTHOR: pavel.punsky
#ROBOMERGE-SOURCE: CL 19474216 via CL 19489199 via CL 19489276
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v936-19480137)
[CL 19489795 by pavel punsky in ue5-main branch]
-Removing libcurl and openssl library references to files that do not exist. Removing WITH_CURL=1 for Hololens. If one attempts to use either at runtime they would fail.
-This allows EngineTest to build and cook. Presumably some tests would fail, if we were able to run them at all (would require a hololens device hooked up to automation).
-A better fix would be to either build these libraries for hololens, both x64 and arm64 or to make them fully optional again, but that seems out of scope for 5.0.
-UE-141681 was created to follow up.
#jira UE-140418
#rb Steve.Smith
#lockdown Rolando.Caloca
#preflight 62018805846dda28ab0db3f5
#ROBOMERGE-OWNER: jeff.fisher
#ROBOMERGE-AUTHOR: jeff.fisher
#ROBOMERGE-SOURCE: CL 18893959 in //UE5/Release-5.0/... via CL 18894096 via CL 18894432
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)
#ROBOMERGE-CONFLICT from-shelf
[CL 18894586 by jeff fisher in ue5-main branch]
#rnx
#rb none
#ROBOMERGE-SOURCE: CL 10869250 via CL 10869537 via CL 10869906
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870965 by ryan durand in Main branch]
- Up to CL8320930 from DevOnline and 8311605 Merge Down from Main
- skipped some Fortnite content/plugins/code where it tried to reintegrate files that had been moved pending investigation
#rb none
[CL 8321295 by Josh Markiewicz in Main branch]
If you still need to old behavior of searching for a library we use the new PublicSystemLibraries instead (used very sparingly).
Also updated conventions on importing Android libraries to use the newly introduced Android Architecture instead, which is always set to a valid architecuture (unlike Target.Architecture for the general case)
Lastly I updated some build.cs files that were doing filesystem enumeration or copying as they were being parsed, this is highly discouraged (partially because we cache filesystem operations but also it adds a cost to something we expect to be very fast). Any operations like this should be done as part of the build if they have to be done at all.
#rb none
[CL 7918851 by Joakim Lindqvist in Dev-Build branch]
#rb trivial
#ROBOMERGE-SOURCE: CL 7813288 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v388-7785529)
[CL 7813303 by joe conley in Main branch]