Commit Graph

1414 Commits

Author SHA1 Message Date
ben marsh
1a0aebe5be 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

#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 17473130 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17473153 by ben marsh in ue5-release-engine-test branch]
2021-09-09 12:12:20 -04:00
jonathan adamczewski
42ef103436 UnrealBuildTool:
Add new commandline option: -AlwaysRulesCompile, ensures that rules assemblies will be compiled during the run.

#jira none

#ROBOMERGE-SOURCE: CL 17428445 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17428452 by jonathan adamczewski in ue5-release-engine-test branch]
2021-09-03 19:27:06 -04:00
ben marsh
e93f5be457 UBT: Make sure deprecation warnings are treated as errors when -WarningsAsErrors is specified on the command line. Fixes a number of intermittent errors through Horde.
#ROBOMERGE-SOURCE: CL 17394491 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17394493 by ben marsh in ue5-release-engine-test branch]
2021-09-01 19:35:23 -04:00
jonathan adamczewski
e420cb12f0 UnrealBuildTool:
Make ConfigValueTracker immutable.
Propagate some nullability in and around TargetRules.

#jira none
#rb none

#ROBOMERGE-SOURCE: CL 17377821 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17377828 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-31 17:09:35 -04:00
jonathan adamczewski
de4f879f66 UnrealBuildTool:
Remove unnecessary check for Makefile validity.

#jira none
#rb none
#trivial

#ROBOMERGE-SOURCE: CL 17375405 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17375418 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-31 15:18:10 -04:00
jonathan adamczewski
04318edf4e UnrealBuildTool:
Simplify ExternalExecution.ExecuteHeaderToolIfNecessary() interface

#jira none

#ROBOMERGE-SOURCE: CL 17360308 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17360318 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-30 18:28:35 -04:00
jonathan adamczewski
9e136dd1b8 UnrealBuildTool:
Update comments & method names - timestamps are recorded in the Timestamps file. The directory timestamp is no longer relevant.

#jira none
#trivial

#ROBOMERGE-SOURCE: CL 17360071 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17360076 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-30 18:16:28 -04:00
jonathan adamczewski
1539a435f3 UnrealBuildTool:
Remove bIsGatheringBuild; directory timestamps do not need to be checked, and a null build of UHT is much cheaper than it used to be.

#jira none

#ROBOMERGE-SOURCE: CL 17359968 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17359974 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-30 18:10:06 -04:00
jonathan adamczewski
5219a3d9a4 UnrealBuildTool:
Remove always true bIsAssembling mode variable.

#jira none
#trivial

#ROBOMERGE-SOURCE: CL 17355911 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17355924 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-30 14:27:17 -04:00
ben marsh
afd9828257 UBT: Fix typo.
#jira UE-122148

#ROBOMERGE-SOURCE: CL 17317782 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17317821 by ben marsh in ue5-release-engine-test branch]
2021-08-26 10:35:51 -04:00
jonathan adamczewski
05b7df7113 Various spelling & phrasing in comments & string
#jira none
##trivial

#ROBOMERGE-SOURCE: CL 17249885 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17249895 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-20 13:31:20 -04:00
jonathan adamczewski
45a4507f06 UnrealBuildTool ExternalExecution.UpdateDirectoryTimestamps:
Write timestamp files in parallel.

#jira none
#rb none

#ROBOMERGE-SOURCE: CL 17195212 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17195233 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-17 11:14:52 -04:00
jonathan adamczewski
79aed20146 UnrealBuildTool:
Support for writing files directly as lines, without converting to a single string first.

#jira none
#rb joe.kirchoff

#ROBOMERGE-SOURCE: CL 17162046 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17162059 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-12 20:46:22 -04:00
jonathan adamczewski
873ad14c0f StableTopologicalSort():
Perform dependency calculation in parallel, and overlap with array sorting. Reduces function runtime on my machine by 0.5 seconds for UnrealEditor target.

#jira none
#rb tim.smith

#ROBOMERGE-SOURCE: CL 17153366 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17153373 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-12 11:55:35 -04:00
brandon schaefer
3e9c888431 Only generate Makefile and VSCode now. As VSCode is the default source code for Linux.
If you want to generate for another IDE do -help to find a list to pick from

#jira none
#rb Michael.Sartain, Robert.Seiver

#ROBOMERGE-SOURCE: CL 17143388 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17143398 by brandon schaefer in ue5-release-engine-test branch]
2021-08-11 18:03:09 -04:00
jonathan adamczewski
f270855eef AutomationTool: Compile script modules within the application
Add a layer of caching to avoid running msbuild as much as possible.

#jira UE-109181
#rb ben.marsh

#ROBOMERGE-SOURCE: CL 17102399 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17102408 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-09 10:39:35 -04:00
david harvey
c2d487e045 Adding RunUAT command to generate a report from DDPI values.
RunUAT ListPlatformDetails -DDPISection=ShaderPlatform/DataDrivenPlatformInfo


This generates an html report for DataDrivenPlatformInfo.ini files showing the values that are set & unset for all of them for easy comparison.


#jira UECON-467
#rb dave.barrett

#ROBOMERGE-SOURCE: CL 17101900 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17101910 by david harvey in ue5-release-engine-test branch]
2021-08-09 10:09:14 -04:00
ben marsh
9e32e05d71 UBT: Fix files added to the working set not invalidating the makefile.
[FYI] Andy.Firth

#ROBOMERGE-SOURCE: CL 17074097 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17074113 by ben marsh in ue5-release-engine-test branch]
2021-08-05 15:22:32 -04:00
joe kirchoff
de1e588e8b UnrealBuildTool: Clean up some intellisense suggestions, format documents, remove and sort usings, etc.
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 17059447 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v850-17047176)

[CL 17059463 by joe kirchoff in ue5-release-engine-test branch]
2021-08-04 16:50:01 -04:00
joe kirchoff
3f62a7c2b6 UnrealBuildTool: Add Internal headers to UHTModuleInfo
#rnx
#rb trivial

#ROBOMERGE-SOURCE: CL 17032469 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v846-17029325)

[CL 17035522 by joe kirchoff in ue5-release-engine-test branch]
2021-08-03 14:43:00 -04:00
ben zeigler
e9bd4ff609 #jira UE-120464 Add Custom Config directory feature, which allows specifying an override directory to support shipping multiple types of builds per platform
Setting CustomConfig=Foo in a Target.cs file will cause it to overlay config files from Project/Config/Custom/Foo on top of the defaults, allowing easy override of things like OSS settings to support multiple stores
In development, -CustomConfig=foo can be specified in both C++ and C# to enable the same functionality, which can be used to select between multiple different stage/deploy configurations in a build script
#rb josh.adams, ben.marsh

#ROBOMERGE-SOURCE: CL 17017130 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)

[CL 17017144 by ben zeigler in ue5-release-engine-test branch]
2021-08-02 12:22:46 -04:00
jonathan adamczewski
b7c1369681 RulesCompiler: Add a batched FindAllRulesFiles() override
Batched function allows greater overlap when scanning the filesystem.
AutomationTool startup time is reduced by ~150ms on my machine

#jira none
#rb ben.marsh

#ROBOMERGE-SOURCE: CL 17000954 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 17000959 by jonathan adamczewski in ue5-release-engine-test branch]
2021-07-29 16:48:25 -04:00
ben marsh
d2d16ec717 UBT: Fix warnings compiling rules assemblies only being output when compilation fails.
[FYI] Aurel.Cordonnier

#ROBOMERGE-SOURCE: CL 16922463 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16922773 by ben marsh in ue5-release-engine-test branch]
2021-07-22 09:55:04 -04:00
joe kirchoff
9c7615fd72 UnrealBuildTool: Clean up VCToolChain functions that add command line args to be more consistently used, allowing more paths that can be relative to reduce command line length
Verified relative pathing works fine for msvc clang builds
Use .d files for dependencies when compiling with windows clang, instead of piping through cl-filter.exe
Use relative pathing for generated unity files

#rb Jonathan.Adamczewski
#rnx
#preflight 60d4de2bcaf0590001e62de9
#preflight 60d4efbccaf0590001e9af24

#ROBOMERGE-SOURCE: CL 16779820 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16779826 by joe kirchoff in ue5-release-engine-test branch]
2021-06-24 19:01:22 -04:00
joe kirchoff
0721e48f10 LiveCoding: Support updating actions that are invoking cl.exe or clang-cl.exe
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16776753 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16776758 by joe kirchoff in ue5-release-engine-test branch]
2021-06-24 14:45:41 -04:00