Also cleaned up some output assemblies, preventing all transative references from being outputed (as we assume they build directly to the output directory instead). Unfortunatley the UBT references still cause tranastive dependencies to be copied as this is also a executable that needs to work outside of UAT as well, we should eventually move all UBT referenced code into BuildUtilities.
#rb none
#fyi ben.marsh
[CL 14775171 by Joakim Lindqvist in ue5-main branch]
Also reduces footprint on disk and speedsup builds slightly.
Also took a pass over all projects to fixup their output paths as there were some inconsitencies from my port to netcore.
Lastly I disabled the resource folders for everything but english to reduce some of the noise in the output folder, this just impacts which languages you get code analysis.
#jira UE-102147
#rb none
[CL 14651855 by Joakim Lindqvist in ue5-main branch]
Added a NET_CORE define to allow us to have changes side by side.
The AWS S3 changes are required due to us requiring to upgrade the S3 assembly version to get net core support (which made all methods async).
The ACL checks for files are not available in the system libraries of net core, as such the api is a bit different.
AutomationToolLauncher now just spawns a subprocess when used in netcore, as netcore does not support custom AppDomains and shadow copying. We will generally need to revisit this for netcore as this whole feature of building the source for UAT in UAT is not really possible.
To enable this set environment variable "UE_USE_DOTNET=1", note that with netcore all applications change their output path so this will likely break a bit of tooling when enabled.
#rb ben.marsh
[CL 14572339 by Joakim Lindqvist in ue5-main branch]
While these were present no csproj actually referenced them and built them, thus these files do not actually compile.
#rb none
[CL 14532228 by Joakim Lindqvist in ue5-main branch]
- Wrapped the build in try/finally to always clean up of the build directory.
- Fixed target platform construction to include the target architecture.
- Fixed target platform construction to log an error on failure instead of crashing on a null dereference later.
- Fixed configuration name comparisons to be case-insensitive.
- Added an optional BinOutputPath param to match LibOutputPath.
- Changed to an empty default MakeTarget because CMake was not generating a target with the previous default name.
- Changed BuildTargetLib to use cmake --build instead of implementing custom build logic for every target platform.
- Changed Linux to use CMake and make from the path instead of attempting to use the Mac binaries.
- Simplified the TargetPlatform interface to remove a lot of boilerplate code from the implementations.
#jira none
#rb Brandon.Schaefer
[CL 14439522 by devin doucette in ue5-main branch]
Mostly a find/replace, though I have looked through the changes and attempted to update references to other things as necessary (eg. renaming IOS plist files for IOS). I'm not set up to test on any platforms other than windows, and was hoping to get your blessing to submit and give QA enough time as possible to uncover issues before the next milestone release.
Particular things that I know I'm not sure about:
- Android references /UE4Game/ paths everywhere (for paths on device, I think). I have no idea if I've got them all.
- I've renamed the iOS mobileprovisions, but I don't know if they need regenerating for the new app name.
- Likewise, not sure what needs to be updated for icon bundles on iOS.
Things that have not been changed:
- Windows still uses IDI_UE4ICON for its icon
- UE4CommandLine.txt
- There's still a UE4Game module which is used by content-only projects
#rb none
[CL 14301890 by Ben Marsh in ue5-main branch]
- updated IoStoreWriter to encrypt blocks (not assets)
- updated automation scripts to pass relevant encryption commands to IoStore comandlet
- added encryption guid to container TOC header
- added encryption guid to container meta when loading/saving release information
- updated IoStore command to enable container local namemap when encryption is enabled
- updated IoDispatcher file backend to decrypt blocks
- added encryption key cache to FileIoStore
#rb CarlMagnus.Nordin, PJ.Kack
#ushell-cherrypick of 13032243 by Per.Larsson
#ROBOMERGE-SOURCE: CL 13167088 via CL 13167091 via CL 13167092 via CL 13167094
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v688-13145358)
[CL 13167097 by per larsson in Main branch]
1) First, parse all import tables to find the set of all referenced script packages (as a good approximation of which modules/script packages that are actually used for the target platform)
2) Then find and build import name lookup tables from all public non editoronly objects in memory in these packages.
3) Parse all export tables, to find all exports, and build import name lookup tables from all public exports.
4) Parse and validate all individual import entries in the import tables using the import name lookup tables from 2 & 3.
Dump all import and export data to/from the release version meta.
#rb per.larsson
#ushell-cherrypick of 13063212 by PJ.Kack
#ROBOMERGE-SOURCE: CL 13146983 via CL 13146985 via CL 13146986 via CL 13146988
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v688-13145358)
[CL 13146989 by pj kack in Main branch]
#rb none
[FYI] josh.adams
#rnx
#ROBOMERGE-SOURCE: CL 13119430 via CL 13119444 via CL 13119470
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v687-13115495)
[CL 13119491 by jeff newquist in Main branch]
#jira
#ROBOMERGE-SOURCE: CL 13113744 via CL 13113745 via CL 13113747
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)
[CL 13113750 by ben marsh in Main branch]
#rb none
[FYI] josh.adams, ben.woodhouse
#rnx
#ROBOMERGE-SOURCE: CL 13072249 via CL 13072256 via CL 13072267
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)
[CL 13072279 by jeff newquist in Main branch]