Commit Graph

2 Commits

Author SHA1 Message Date
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
Ben Marsh
c35aa25979 UBT: Add a mode for analyzing the dependencies between modules.
Example usage "-Mode=Analyze UnrealEditor Win64 Development".

The tool currently outputs the following files:
* A graph of dependencies between modules, with edges indicating unique outward references (eg. if module A depends on Core and BuildSettings, but Core depends on BuildSettings, an edge will only be shown from A -> Core).
* A graph showing shortest path from the target to each module.
* A text file listing all modules in the target, their references to other modules, the shortest path causing them to be instantiated, and a (very) rough estimate of their size taken by measuring the sum of all object files or output files that already exist on disk.
* A csv file containing the same information as above.

Graphs are output in GEFX format, and can be viewed using Gephi.

#fyi Mark.Lintott

[CL 17473130 by Ben Marsh in ue5-main branch]
2021-09-09 12:10:41 -04:00