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]
* 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]
- 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]
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]
* 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]
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]
- 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]