Commit Graph

173 Commits

Author SHA1 Message Date
henrik karlsson
3f6f69731a [Box]
* Added -BoxNoWrite command line option. When this is set, intermediate/output files are not written to disk (for now there are a few exceptions such as ispc h-files and pch-files)
* Binaries with bug fixes
Added -BoxPrintSummary command line option. By default summary is now not written out to log

#rb joe.kirchoff

[CL 25821777 by henrik karlsson in ue5-main branch]
2023-06-06 13:57:20 -04:00
christopher waters
37f26ae37e Don't use the Box Executor if compiling with -SingleFile=
#rb henrik.karlsson

[CL 25803371 by christopher waters in ue5-main branch]
2023-06-05 16:56:39 -04:00
joe kirchoff
acacd6a8de UnrealBuildTool: More automated code cleanup
* Use object type rather than var
* Remove double newlines
* Use pattern matching

#rnx
#preflight 647780095d23eca37d28a387

[CL 25706751 by joe kirchoff in ue5-main branch]
2023-05-31 13:37:21 -04:00
joe kirchoff
36d266e932 UnrealBuildTool: Automated code cleanup
#rnx
#preflight 6476799e947ff6973c225619

[CL 25693241 by joe kirchoff in ue5-main branch]
2023-05-30 18:38:07 -04:00
joe kirchoff
8d61991e8a Managed p/invoke libray for box rather than use a managed c++ library
#rnx
#rb Henrik.Karlsson
#preflight 64763f524b0d5a1eb1e81c38

[CL 25683741 by joe kirchoff in ue5-main branch]
2023-05-30 14:47:11 -04:00
tim smith
e32f741420 1) Addition of the artifact interfaces
2) Moved common code from executors into an immediate action queue.
3) Added support in the immediate action queue to read/write artifacts

#rb joe.kirchoff
#preflight 6454f3c5ed7ffaa0f5b2fbfa

[CL 25355149 by tim smith in ue5-main branch]
2023-05-05 11:19:57 -04:00
joe kirchoff
54e368d84b UnrealBuildTool: Print time spent in executor before throwing any execeptions
#rnx
#rb trivial

[CL 25336919 by joe kirchoff in ue5-main branch]
2023-05-04 12:10:45 -04:00
Joe Kirchoff
d1da550c73 UnrealBuildTool: Fix line that was accidently commented out
#rnx
#rb trivial
#preflight 64487dc6b208f61af8d26e15

[CL 25193668 by Joe Kirchoff in ue5-main branch]
2023-04-25 21:42:26 -04:00
Ben Marsh
3889217961 UBT: Merging CL 25121561 to support async ToolMode and ActionExecutor instances.
#preflight none

[CL 25121660 by Ben Marsh in ue5-main branch]
2023-04-19 21:44:13 -04:00
henrik karlsson
3f6b2896a8 [UnrealBuildTool]
* Added experimental executor "Box"

#preflight 6414e9a4ca2afe3ee6c35c9a
#rb partly joe.kirchoff (not the Box code part)

[CL 24702059 by henrik karlsson in ue5-main branch]
2023-03-18 01:42:55 -04:00
Ben Marsh
7e26c34d2b EpicGames.Core: Deprecate legacy log methods to prefer structured logging interface.
#preflight 640a23d928026468d9de7cbd

[CL 24580590 by Ben Marsh in ue5-main branch]
2023-03-09 14:51:40 -05:00
joe kirchoff
7aa214f6cb UnrealBuildTool: Remove obsolete HordeExecutor prototype
#rnx
[FYI] Ben.Marsh

[CL 24471319 by joe kirchoff in ue5-main branch]
2023-03-01 16:52:35 -05:00
Joe Kirchoff
6f904d0237 UnrealBuildTool: Simplify action conflict filename
#rnx
#rb trivial
#jira UE-176926
#preflight skipped

[CL 24214875 by Joe Kirchoff in ue5-main branch]
2023-02-14 12:37:45 -05:00
joe kirchoff
346eeabb72 UnrealBuildTool: When checking timestamps of produced files, also consider creation time as in some cases copied outputs (such as from a cache) can have a newer creation time than last write time
#rnx
#rb Ryan.Hummer
#preflight 63d9887dd21dbe1d290047ab

[CL 23942163 by joe kirchoff in ue5-main branch]
2023-01-31 19:26:51 -05:00
henrik karlsson
5f7fa70d36 [UBT]
* Changed how sorting of Actions is made. This to increase throughput of builds and reduce bubbles.
  1. Changed so after actions are sorted based on dependency count we do a second pass and try to move linking to as early as possible. Reason is because linking is less cpu intense and makes sense to do in parallel with compiling instead of all linking happening at the end. Linking is also not remotely executed in some scenarios and therefore we want the local host to do the linking while other actions are remotely executed
   2. Added a high priority flag that can explicitly be set on actions. This is now set on actions building precompiled headers which often takes a long time and can push out builds if they are only prioritized based on dependency count. This flag is also used in IWYU build mode to build headers first (to flush out errors early) and will most likely be used in header unit builds to prioritize header unit files before other code files.

With these changes plus a following change in ParallelExecutor.cs FortniteEditor wall time went down from ~15m to 13m  (tested three times with and without changes)

#preflight 63d822b95c69f453c11c0ce5
#rb joe.kirchoff

[CL 23923446 by henrik karlsson in ue5-main branch]
2023-01-31 01:16:13 -05:00
Josh Adams
11bb4c4c51 - Don't do the path length check (focused on Portability between users) for files in Intermediate directory, as these files are inherently not portable
#rb tim.smith
#preflight 63d03aeda605f887d1e08688

[CL 23837034 by Josh Adams in ue5-main branch]
2023-01-24 15:40:12 -05:00
Joe Kirchoff
e213963f90 UnrealBuildTool: Stabilize file path for action confilct
#rnx
#rb trivial
#preflight 63c1d69cb065224750e0c734

[CL 23687890 by Joe Kirchoff in ue5-main branch]
2023-01-13 17:12:52 -05:00
Joe Kirchoff
830db35fff UnrealBuildTool: Don't repeat conflict messages for the same two Actions if multiple produced items are conflicting
#rnx
#rb trivial
#preflight 63c0a2d22a6acaf16234c4e2

[CL 23672080 by Joe Kirchoff in ue5-main branch]
2023-01-12 19:20:52 -05:00
joe kirchoff
8046ba0c0d UnrealBuildTool: Ensure Action list is ordered before running any executor. Pass in IEnumerable instead of List
#rnx
#rb trivial
#preflight 635b20e0015611ae3a0d8f30

[CL 22831783 by joe kirchoff in ue5-main branch]
2022-10-28 13:27:22 -04:00
bryan sefcik
6245f9d961 Minor optimizations in UBT to improve time when creating the action graph.
#jira
#preflight 6335f77e2f447ea8dc26f758

[CL 22264273 by bryan sefcik in ue5-main branch]
2022-09-30 01:41:38 -04:00
joe kirchoff
abdd5ac8ca UnrealBuildTool: Don't throw entire action graph as an exception when there is a cycle
#rnx
#rb trivial
#preflight 63349be6ce6dba45926fb2d5

[CL 22240106 by joe kirchoff in ue5-main branch]
2022-09-28 22:11:23 -04:00
joe kirchoff
9d5e715748 UnrealBuildTool: Option to consider logical cores when running local builds
#jira UE-163438
#rnx
#rb none
#preflight 631baf2a304480f8f8bceac6

[CL 21930861 by joe kirchoff in ue5-main branch]
2022-09-09 19:16:18 -04:00
Joe Kirchoff
e7bed3a793 UnrealBuildTool: Report in the log when a dependency file is missing instead of printing an invalid timestamp
#rnx
#rb trivial
#preflight 62bb99da30036d0db9438dc8

[CL 20867012 by Joe Kirchoff in ue5-main branch]
2022-06-28 20:22:32 -04:00
Tim Smith
06cac684a2 Added .so and .dylib files as files to consider as library files to help reduce relinking on Mac and Linux.
#rb joe.kirchoff, ben.marsh
#preflight 62a72b392a70e8deaccf4aaa

[CL 20626926 by Tim Smith in ue5-main branch]
2022-06-13 10:32:12 -04:00
Ben Marsh
cbb950c578 UBT: Use ILogger throughout UBT, rather than legacy EpicGames.Core.Log methods. All output going forwards should use structured logging rather than String.Format style logging.
#preflight 628e9dc6e746de4961f60032

[CL 20373777 by Ben Marsh in ue5-main branch]
2022-05-25 19:55:37 -04:00