Commit Graph

1648 Commits

Author SHA1 Message Date
bryan sefcik
1ad98523c4 Added support to give actions in UBT "weight". "Weight" is an average measurement of how many cores and memory an action uses. Using one core with a normal amount of memory for an action would be a value of 1.
Why do this:
Currently when compiling a cpp file with MSVC, it compiles across multiple cores while clang does not. This means that while we support limiting the number of cores(using ProcessorCountMultiplier), MSVC will use more cores than we specify. It also means that MSVC will always be faster when compiling because clang does not support compiling a cpp over multiple cores. To get similiar results when compiling with clang, we set the weight of MSVC to 1.5 and the weight of clang to 1.0. We then set the ProcessorCountMultiplier to 1.5. This results in MSVC and clang taking roughly the same amount of CPU utilization and clang compiles to be much faster.

	                     Old Timing(secs)	Old CPU Utilization	New Timing	New CPU Utilization(secs)
PlatformA AncientGame	590.94	51	                               431.47	73
MSVC AncientGameEditor	1016.96	94	                             1026.08	95
Clang AncientGameEditor	1543.72	63	                               1270.4	84
PlatformB AncientGame	494	52	                               396.95	74

Old = without weight path
New = with weight path

#jira
#rb christopher.waters, joe.kirchoff
#preflight 6409026c8832f48a4dc72025

[CL 24567859 by bryan sefcik in ue5-main branch]
2023-03-08 17:08:22 -05:00
Andrew Scheidecker
02f9686b0f Fix ClangToolchain omitting global compiler options from the command line on platforms that don't use a shared response file.
#jira none
#rb Joe.Kirchoff
#preflight 6408d6096c1b9295b9bddca7

[CL 24564056 by Andrew Scheidecker in ue5-main branch]
2023-03-08 13:59:38 -05:00
Joe Kirchoff
04b2b155bc UnrealBuildTool: Make CStandard enum consistent with CppStandard
#rnx
#preflight 6407c690c13b7130d276f1b8

[CL 24551440 by Joe Kirchoff in ue5-main branch]
2023-03-07 18:41:02 -05:00
LouisPhilippe Seguin
a21f510ae7 UnrealBuildTool
* Added option to generate assembly files while compiling cpp files.
* Supported only on MSVC compiler for now.
* The generated files have the .asm extension and are located in the same Intermediate folder as the corresponding .obj

#jira none
#rb Joe.Kirchoff
#preflight

[CL 24545403 by LouisPhilippe Seguin in ue5-main branch]
2023-03-07 14:20:51 -05:00
Josh Adams
864b1270f6 - Skip hidden source files
#preflight 64060c6b2559570cc75368a8
#rb henry.falconer

[CL 24523412 by Josh Adams in ue5-main branch]
2023-03-06 11:07:00 -05:00
Josh Adams
5eac55ec21 - Fixed location of ini files that are Restricted + Program + PlatformExtension ini files
- Previously it would look in, say, "/Engine/Restricted/NotForLicensees/Programs/UnrealHeaderTool/Platforms/Mac/Config/MacEngine.ini", which breaks the structure of Restricted and Platforms. Now it will look in "/Engine/Restricted/NotForLicensees/Platforms/Mac/Programs/UnrealHeaderTool/Config/MacEngine.ini" which is correct
#rb tim.smith
#preflight 6405fb063206d45d200b7e36

[CL 24521853 by Josh Adams in ue5-main branch]
2023-03-06 09:56:14 -05:00
joe kirchoff
1ad009dd27 UnrealBuildTool: Stash shared paths in the CppCompileEnvironment after creating a shared response file so those paths can still be used for validation
#rnx
[FYI] Henrik.Karlsson

[CL 24493752 by joe kirchoff in ue5-main branch]
2023-03-02 20:29:33 -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
ddcb912fe5 UnrealBuildTool: Remove CanUseParallelExecutor as it is no longer needed as the UAT ParallelExecutor has been removed and is obsolete.
#rnx
#rb trivial
#preflight 63fe749add78dd50f6247b02

[CL 24452546 by Joe Kirchoff in ue5-main branch]
2023-02-28 17:01:41 -05:00
tim smith
b46d240455 Added to UBT an alternative module file for live coding. When in use, UBT will only generate "not enabled" errors if explicitly listed in the lazy load modules.
#rb self
#rnx
#jira UE-161641
#preflight 63fe5c3aae54ee4ce9c97d70

[CL 24452469 by tim smith in ue5-main branch]
2023-02-28 16:58:16 -05:00
christopher waters
a7119071ac Fixing ConfigCache key comparisons.
Changing ConfigCache to save if a file wasn't found.

Reduced -ProjectFiles time from 5m to 2m.

#rb joe.kirchoff, henrik.karlsson, pj.kack

[CL 24352025 by christopher waters in ue5-main branch]
2023-02-21 17:55:54 -05:00
henrik karlsson
a0566a456c [UnrealBuildTool]
* Fixed bug where every change to a header would cause invalidation of makefile due to workset changes.

#preflight skipped
#rb joe.kirchoff

[CL 24344625 by henrik karlsson in ue5-main branch]
2023-02-21 13:38:23 -05:00
lorry li
9aa4ccd942 Add support to deprecate when move key to another section in the same .ini config file.
[REVIEW] [at]josh.adams [at]ben.zeigler
#rb [at]josh.adams
#preflight 63f394fd52460c3a1f360262

[CL 24322807 by lorry li in ue5-main branch]
2023-02-20 15:35:29 -05:00
pj kack
819cf350d8 UAT: Parse ini overrides when reading config values from CreatePaks in CopyBuildToStaginDirectory.
Add ConfigOverrideParams to ProjectParams constructor.
Add OverrideStrings to ConfigHierarchyKey to get the right data from ConfigHierarchy.ReadHierarchy().

#rb dan.thompson
#rnx
#preflight 63ef5c0c3c1eb56f059e7370, 63ef5c4b90198dffbadbd846

[CL 24309947 by pj kack in ue5-main branch]
2023-02-20 03:38:24 -05:00
Josh Adams
4d71a93586 - Added ability to have a IDE project for each Target (UnrealGame vs UnrealEditor) and remove the Type from the Configurations (Debug, Development, etc - no more Development Editor config)
- Enabled for Xcode, added support but left disabled for VisualStudio
- For Games and Samples with multiple projects, a solution folder now contains them
#rb joe.kirchoff
#preflight 63efb20061378b7ea02bc32d

[CL 24285567 by Josh Adams in ue5-main branch]
2023-02-17 12:53:28 -05:00
bryan sefcik
4522523cb7 Fixed a PCH issue when compiling with multiple architectures at the same time.
#preflight 63eebdc13c1eb56f05661567

[CL 24272931 by bryan sefcik in ue5-main branch]
2023-02-16 18:55:59 -05:00
bryan sefcik
7dc0758263 Updated UBT to create the shared PCH instances before setting up the modules so all the PCHs and parent PCHs are setup beforehand.
#preflight 63eeb441977ceed915cb4207
#rb joe.kirchoff

[CL 24272192 by bryan sefcik in ue5-main branch]
2023-02-16 18:31:35 -05:00
bryan sefcik
1cc61ecdd1 Possible fix for android having issues with PCHs
[CL 24253388 by bryan sefcik in ue5-main branch]
2023-02-16 04:16:25 -05:00
joe kirchoff
14754b5f62 UnrealBuildTool: Marketplace plugins shouldn't default to the engine BuildSettingsVersion and should match other plugins
#rnx
#rb trivial
#jira UE-176989

[CL 24251859 by joe kirchoff in ue5-main branch]
2023-02-16 02:04:04 -05:00
bryan sefcik
0ef675123b Possible fix for SNDBS when compiling with PCH chains.
#jira
#rb joe.kirchoff
#preflight 63ed1d817d2ec3d2fd4c3452

[CL 24251837 by bryan sefcik in ue5-main branch]
2023-02-16 02:02:35 -05:00
Joe Kirchoff
578438734f UnrealBuildTool: Mounting a cpp cache for engine is always required and should use the writable engine dir when installed
#rnx
#rb Tim.Smith
#preflight 63ed534496073a3e1918a514

[CL 24242752 by Joe Kirchoff in ue5-main branch]
2023-02-15 16:55:19 -05:00
Joe Kirchoff
935138d8b6 UnrealBuildTool: Make module include path warning debugging output instead
#rnx
#rb trivial
#preflight 63ed259d514832b242b74964

[CL 24235564 by Joe Kirchoff in ue5-main branch]
2023-02-15 13:45:16 -05:00
Joe Kirchoff
db0395ddf7 UnrealBuildTool: Add Editor to ConfigHierarchyType
#rnx
#rb trival
#preflight 63ebe66b346bca0035bd4268

[CL 24219140 by Joe Kirchoff in ue5-main branch]
2023-02-14 15:03:53 -05:00
Joe Kirchoff
d09dac245a UnrealBuildTool: Ignore conflicts in CreateAppBundle Actions
#rnx
#rb trivial
#preflight 63ebd366e92f139c51bd9250

[CL 24216855 by Joe Kirchoff in ue5-main branch]
2023-02-14 13:43:33 -05:00
josh adams
f881608487 - Fixing location for UHT generated headers to not have architecture in the path, because they are per-arch, and with InstalledBuilds, if we made a Universal build, but then user does non-universal, the UHT intermediates would look in a different location than where we put them ('arm64' vs 'arm64+x64')
#jira UE-176191
#preflight 63e401713c44c83044e5b2c3

[CL 24214920 by josh adams in ue5-main branch]
2023-02-14 12:40:03 -05:00