Commit Graph

1634 Commits

Author SHA1 Message Date
zousar shaker
082e9969db [Backout] - CL34481610
[FYI] Zousar.Shaker
Original CL Desc
-----------------------------------------------------------------
Incremental step towards being able to stage to both a pak build as well as a nopak (streamng) build from a snapshot entirely stored in zenserver (no loose files on the filesystem except a ue.projectstore file).
Key changes:
- Removed the use of cookedfiles.manifest
- Changed IoStore mode of UnrealPak to  be capable of getting zenserver launch data from either a package store manifest (cbobject, metadata) OR a project store marker file (json)
- Ensured that the UAT and IoStore mode of UnrealPak can launch zenserver reliably by passing along the SponsorProcessId when launching zenserver
- Ensured that shader archives (and their accompanying json metadata files) can be read either as loose files on disk or directly from zenserver if it the data for them is internal to zenserver (ie: they have a valid  chunk id)
Remaining work:
- Pak mode of UnrealPak must be able to launch zenserver and pull data from it.

#rb PJ.Kack

[CL 34498668 by zousar shaker in ue5-main branch]
2024-06-19 10:15:01 -04:00
zousar shaker
a7b5faeaf0 Incremental step towards being able to stage to both a pak build as well as a nopak (streamng) build from a snapshot entirely stored in zenserver (no loose files on the filesystem except a ue.projectstore file).
Key changes:
- Removed the use of cookedfiles.manifest
- Changed IoStore mode of UnrealPak to  be capable of getting zenserver launch data from either a package store manifest (cbobject, metadata) OR a project store marker file (json)
- Ensured that the UAT and IoStore mode of UnrealPak can launch zenserver reliably by passing along the SponsorProcessId when launching zenserver
- Ensured that shader archives (and their accompanying json metadata files) can be read either as loose files on disk or directly from zenserver if it the data for them is internal to zenserver (ie: they have a valid  chunk id)
Remaining work:
- Pak mode of UnrealPak must be able to launch zenserver and pull data from it.

#rb PJ.Kack

[CL 34481636 by zousar shaker in ue5-main branch]
2024-06-18 17:33:46 -04:00
michael wanderson
fa829ba278 ThirdParty source changes
- restored zlib source for cross platform builds in the UE stream
- added ninjabuild support to UBT cmake build target
- some minor catch2 and libpng changes to better support cross platform builds.


#ushell-cherrypick of 34416030 by David.Harvey

[CL 34445726 by michael wanderson in ue5-main branch]
2024-06-17 19:08:04 -04:00
stephen ma
ff0fe033ec Add -projectprogramoverride to allow BuildCookRun to override passed in uproject paramter when building programs.
[REVIEW] josh.adams
#rb Josh.Adams

[CL 34388872 by stephen ma in ue5-main branch]
2024-06-14 19:23:10 -04:00
pj kack
3ad849a688 UnrealPak: When the existing optional .uproject argument is provided first on the commandline, then let UnrealPak use that to set its project directory and override the monolithic engine program directory (Engine/Programs/UnrealPak).
This will make UnrealPak read from and use the project-specific ini files.
This will make UnrealPak write to and use the project-specific Saved directory, e.g. to save the UnrealPak.log file.
In the BuildCookRun/CopyBuildToStagingDirectory scripts always invoke UnrealPak with the .uproject file argument.
Always run UnrealPak itself with -nopak to avoid picking up and mounting any existing pak files in the project directory.

Motivation: When UnrealPak is run with -compressionEnableDDC it needs to use the project's ddc configuration instead of the engine's ddc configuration.

Note: When UnrealPak is invoked without the project argument it will still use the default program directory, and there is no change in behavior when e.g. manually executing inspection commands like list, extract and describe.
Note: All important packaging options are already passed on command line from BuildCookRun/CopyBuildToStagingDirectory, so from that perspective the change should be low risk, but in the future there is a possibility to reduce the number of command line options and rely on the project configuration instead.

#rb per.larsson
#tests identical binary output

[CL 34266589 by pj kack in ue5-main branch]
2024-06-11 03:37:13 -04:00
joe kirchoff
72a8c5996d Fix various XML comment issues in AutomationTool and various scripts (non-functional change)
#rnx

[CL 34263204 by joe kirchoff in ue5-main branch]
2024-06-10 21:51:45 -04:00
graeme thornton
6ccbb2644f [Backout] - CL34089536
[FYI] PJ.Kack
Original CL Desc
-----------------------------------------------------------------
UnrealPak: When the existing optional .uproject argument is provided first on the commandline, then let UnrealPak use that to set its project directory and override the monolithic engine program directory (Engine/Programs/UnrealPak).
This will make UnrealPak read from and use the project-specific ini files.
This will make UnrealPak write to and use the project-specific Saved directory, e.g. to save the UnrealPak.log file.
In the BuildCookRun/CopyBuildToStagingDirectory scripts always invoke UnrealPak with the .uproject file argument.

Motivation: When UnrealPak is run with -compressionEnableDDC it needs to use the project's ddc configuration instead of the engine's ddc configuration.

Note: When UnrealPak is invoked without the project argument it will still use the default program directory, and there is no change in behavior when e.g. manually executing inspection commands like list, extract and describe.
Note: All important packaging options are already passed on command line from BuildCookRun/CopyBuildToStagingDirectory, so from that perspective the change should be low risk, but in the future there is a possibility to reduce the number of command line options and rely on the project configuration instead.

#rb per.larsson
#tests identical binary output

[CL 34107564 by graeme thornton in ue5-main branch]
2024-06-04 17:23:55 -04:00
pj kack
9e01741303 UnrealPak: When the existing optional .uproject argument is provided first on the commandline, then let UnrealPak use that to set its project directory and override the monolithic engine program directory (Engine/Programs/UnrealPak).
This will make UnrealPak read from and use the project-specific ini files.
This will make UnrealPak write to and use the project-specific Saved directory, e.g. to save the UnrealPak.log file.
In the BuildCookRun/CopyBuildToStagingDirectory scripts always invoke UnrealPak with the .uproject file argument.

Motivation: When UnrealPak is run with -compressionEnableDDC it needs to use the project's ddc configuration instead of the engine's ddc configuration.

Note: When UnrealPak is invoked without the project argument it will still use the default program directory, and there is no change in behavior when e.g. manually executing inspection commands like list, extract and describe.
Note: All important packaging options are already passed on command line from BuildCookRun/CopyBuildToStagingDirectory, so from that perspective the change should be low risk, but in the future there is a possibility to reduce the number of command line options and rely on the project configuration instead.

#rb per.larsson
#tests identical binary output

[CL 34089539 by pj kack in ue5-main branch]
2024-06-04 06:12:40 -04:00
pj kack
05aabbc15a BuildCookRun: Always try to copy the default UnrealPak.log file to the UAT logs folder after every invocation of UnrealPak.
This log file may contain more verbose logging than the one generated by RunAndLog() based on stdout/stderr.
Route all calls to UnrealPak through the same RunUnrealPak function.

#rb dan.engelbrecht
#rnx

[CL 33920501 by pj kack in ue5-main branch]
2024-05-27 02:43:45 -04:00
zousar shaker
67fe4b2afe Fix stage/deploy functionality so that if you're using fileserver/projectstore functionality, it doesn't write a layout file that expects loose files (INIs, etc) to be on the filesystem. This required moving some pieces of functionality onto ProjectParams so that they are accessible by a platform automation layer.
#rb dan.engelbrecht, PJ.Kack

[CL 33041507 by zousar shaker in ue5-main branch]
2024-04-17 13:30:25 -04:00
ryan hummer
499148fadf Fixing InstalledEngineBuild failing for licensees
Removing redundant copy as well, as the files are already tagged via other steps

#jira UE-212012
#rb jeremie.roy

[CL 32873716 by ryan hummer in ue5-main branch]
2024-04-11 02:36:20 -04:00
zousar shaker
51ae87ada2 Treat "nopak" staging with use of zenstore as a equivalent to enabling the "fileserver" commandline argument during stage time alone.
#rb dan.engelbrecht

[CL 32772541 by zousar shaker in ue5-main branch]
2024-04-05 16:59:33 -04:00
eric knapik
ddbc03d3a8 Fix issue when trying alternative staging dir.
Dir parameter must exist.

[CL 32640687 by eric knapik in ue5-main branch]
2024-04-01 11:22:44 -04:00
eric knapik
deace613c4 Add fallback option for when the metadata directory does not exist when performing a DLC cook.
Potential location when an override cook dir is provided.

#rb Joshua.Shlemmer

[CL 32547612 by eric knapik in ue5-main branch]
2024-03-27 12:42:36 -04:00
zousar shaker
106b9499e0 Convert ue.projectstore file to json.
#rb dan.engelbrecht

[CL 32464544 by zousar shaker in ue5-main branch]
2024-03-24 22:03:42 -04:00
will brown
2f6c5f922d Calling the CustomCopyHandler during CreatePakResponseFileFromStagingManifest so that the copy output file can be correctly added to the PakResponse
#rb Josh.Adams, Zousar.Shaker

[CL 32346844 by will brown in ue5-main branch]
2024-03-19 21:57:14 -04:00
josh adams
2be3d72a42 - Fixed IsStaged with CrashReportClient living in a staged build
#rb paul.chipchase

[CL 32305504 by josh adams in ue5-main branch]
2024-03-18 13:54:15 -04:00
graeme thornton
160f915a6f Handle a case where a custom stage copy handler is specified but cannot be found. Catch the exception and continue with a warning
#rb will.brown

[CL 32245514 by graeme thornton in ue5-main branch]
2024-03-14 10:57:13 -04:00
bob tellez
71af430da1 [Backout] - CL32181808
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Fixed issue with FPaths::IsStaged() with -pak generated builds (the StagedBuild.ini file can't be in the .pak since it needs ProjectDir() to find .pak files!)
#rb ben.hoffman

[CL 32203658 by bob tellez in ue5-main branch]
2024-03-13 00:39:06 -04:00
josh adams
869985981d - Fixed issue with FPaths::IsStaged() with -pak generated builds (the StagedBuild.ini file can't be in the .pak since it needs ProjectDir() to find .pak files!)
#rb ben.hoffman

[CL 32181819 by josh adams in ue5-main branch]
2024-03-12 11:48:25 -04:00
paul chipchase
6934fbffe4 Improve .uondemandtoc handling during staging.
#rb Per.Larsson
#jira UE-189912
#rnx

- There were multiple areas that checked if a cooked file was of a certain extension, this code has been consolidated in a single method ::CanCookedFileBeStaged and as we were excluding .ucas/.utoc I added .uondemandtoc to be excluded too.
- There are three places with code logic that try to copy container files from one location to another but each one is subtley different so I left the code duplication in place but added support to copy any .uondemandtoc file that might exist. Unlike the .ucas/.utoc the new type is optional so that had to be taken into account.
- ::DeletePakFiles has been updated to also delete all .uondemandtoc files present. The only code path calling this does not seem to be easily accessed, I have added a code comment describing the only method I found that could actually cause it to be executed to hopefully help the next person working in this area.
- Note that in the code branch for creating a patch for chunked installed builds (line 3955) I am not confident that this works at all. All if the file copying operations use 'PatchSourceContentPath' as the source which is almost certainly wrong and the path itself seems to always contain a wildcard character which would cause it to be wrong as well. For now I have followed the current code convention and used 'PatchSourceContentPath' when copying the .uondemandtoc but looking into this code path will need to be it's own work item.

[CL 32020661 by paul chipchase in ue5-main branch]
2024-03-05 10:36:41 -05:00
josh adams
7c99ad4d71 - Added StagedBuild.ini file to staged builds so runtime code can determine if the build is staged or not
- Using it now in SubmitTool and in ProjectDir() logic
#rb paul.chipchase

[CL 32017558 by josh adams in ue5-main branch]
2024-03-05 08:45:23 -05:00
paul chipchase
af6970375e Fix the IAS staging arg '-Upload=LocalZen' to work with projects that contain spaces in their path.
#rb Martin.Ridgers
#rnx

- Make sure that the path to the pakfile directory and the path to the cryptokeys are properly quoted.

[CL 31983383 by paul chipchase in ue5-main branch]
2024-03-04 03:28:12 -05:00
ben marsh
89455d1556 Update allowed .NET versions to fix build warnings, and add support for parsing NET core versions.
#jira UE-208533

[CL 31910618 by ben marsh in ue5-main branch]
2024-02-29 11:26:16 -05:00
paul chipchase
e206a99620 Changed the staging option '-Upload=LocalZen' to use IasTool rather than UnrealPak.
#rb Martin.Ridgers
#rnx

- Instead of passing in '-Upload=<PathToPaks>' the IasTool expects first a command 'Upload' followed by '<PathToPaks>' as it's own arg.
- Rather than adding an IasTool version of ::GetUnrealPakLocation, I have opted to keep the code all together in a single function as we are likely to remove this from the general staging scripts at some point.

[CL 31902068 by paul chipchase in ue5-main branch]
2024-02-29 05:20:55 -05:00