The goal of this update is to have valid Android devices not showing with a Warning in the Platforms menu.
To allow this, the AndroidPlatformSDK now return the list of connected devices and their SDK Versions.
The change in TurnkeySupportModule ensures we are stripping the cook flavor from the DeviceId which would fail to verify the SDK.
Regarding the Editor `Platforms` menu, the code was adjusted to have devices listed outside of a submenu when `Platform->SupportsFeature(ETargetPlatformFeatures::ShowAsPlatformGroup)` returns false.
Another addition was a new `ETargetPlatformFeatures::ShowAggregateDevice` to allow platforms to not list the aggregate device (ex: `All_Android_on...`)
#review-36072549
#jira UE-223262
#rb adam.kinge, Chris.Babcock, Josh.Adams
[CL 37262963 by matt begoghina in 5.5 branch]
Otherwise it will fail to launch from project launcher since session name is like `DeviceName (SerialNumber)` with the error `/system/bin/sh: syntax error: unexpected '('`
[REVIEW] [at]Chris.Babcok
#rb Chris.Babcock
[CL 30922981 by rafa lecina in ue5-main branch]
Resolved by adding IProcessResult::bExitCodeSuccess virtual property which may be overridden on the affected platforms to explicitly indicate which exit codes are allowed.
#preflight 6462a07a592448f08bde34e4
#rb David.Harvey
#jira UE-178885
#rnx
[CL 25497459 by Wojciech Krywult in ue5-main branch]
OverflowOBBFileLimit project setting to set number allowed (up to 4, default 2)
#android
[REVIEW] [at]Peter.Sauerbrei
#rb Peter.Sauerbrei
[CL 25035555 by chris babcock in ue5-main branch]
- 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]
- Moved running AndroidStudio to install the commandline tools into the InstallSDKfunction, out of the Prerequisites, which now just now makes sure AndroidStudio is installed
- Added direct AndroidStudio download to Turnkey, usable by all licensees (no need to host the installer at each studio now)
#preflight 63cea450976daa618c0498ec
#rb chris.babcock
[CL 23812459 by Josh Adams in ue5-main branch]