Commit Graph

1450 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
13d207492d UnrealBuildTool: Persist name for -SingleFile compiles, unless there is a filename conflict
#preflight 6408cc576c1b9295b9b7412f

[CL 24563034 by Joe Kirchoff in ue5-main branch]
2023-03-08 13:15:26 -05:00
devin doucette
7fcff95736 Added FParkingLot, FMutex, TUniqueLock, TDynamicUniqueLock
FParkingLot is a framework for building locks and other synchronization primitives, based on WTF::ParkingLot from WebKit.

FMutex is a one-byte mutex that is neither fair nor recursive, based on WTF::Lock from WebKit.

TUniqueLock and TDynamicUniqueLock are generic types to manage mutex locking, based on std::unique_lock.

#preflight 63fe76cbae54ee4ce9db2ca6
#rb Andriy.Tylychko, Phil.Pizlo

[CL 24552008 by devin doucette in ue5-main branch]
2023-03-07 19:11:45 -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
Joe Kirchoff
a8ec97cd4b UnrealBuildTool: Add missing additional produced item for AssemblyFile
#preflight 6407baa8fb10f393c216bf98

[CL 24549460 by Joe Kirchoff in ue5-main branch]
2023-03-07 17:32:29 -05:00
Joe Kirchoff
d3deb6c1a9 Move AssemblyFile output to VCCompileAction. Support compiling assemblies and preprocessing files with SingleFile
#preflight 6407accc8c0039bbf7e303c7

[CL 24548286 by Joe Kirchoff in ue5-main branch]
2023-03-07 16:44:30 -05:00
Josh Adams
0842a7adb3 - Added Framework support in Modern Xcode projects - this will copy and code sign frameworks directly via Xcode, instead of UBT doing it
#rb zack.neyland
#preflight 64078e282559570cc7f40fe2

[CL 24545611 by Josh Adams in ue5-main branch]
2023-03-07 14:28:06 -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
joe kirchoff
dd4d7512c8 [Backout] - CL24528479
#fyi Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
Update preferred MSVC to 14.35.32215 (VS2022 17.5.x)
#preflight 640645dc8832f48a4dcaa686

[CL 24534388 by joe kirchoff in ue5-main branch]
2023-03-06 19:39:21 -05:00
Joe Kirchoff
73e9aab087 Update preferred MSVC to 14.35.32215 (VS2022 17.5.x)
#preflight 640645dc8832f48a4dcaa686

[CL 24528479 by Joe Kirchoff in ue5-main branch]
2023-03-06 15:13:42 -05:00
Tim Smith
25f198f87c Fix for LiveCodingConsole and Catch2 to work with Clang compiler setting.
#rb joe.kirchoff
#preflight 64063e9cc13b7130d2f6f3ca

[CL 24527512 by Tim Smith in ue5-main branch]
2023-03-06 14:42:20 -05:00
Joe Kirchoff
e211298e54 UnrealBuildTool: Put /fastfail on a setting and disable by default
#rnx
#rb trivial
#preflight 6402745fa726961ed9e97016

[CL 24509047 by Joe Kirchoff in ue5-main branch]
2023-03-03 17:48:52 -05:00
Joe Kirchoff
36ab6332ae UnrealBuildTool: Allow overriding windows application icon with TargetRules.WindowsPlatform.ApplicationIcon
#rb Josh.Adams
#preflight 640257f23206d45d203ff14e

[CL 24506014 by Joe Kirchoff in ue5-main branch]
2023-03-03 15:38:39 -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
slonopotamus
1663ff2d4b PR #10191: Allow usage of incredibuild on macOS (Contributed by slonopotamus)
#preflight 63ffadaec00784bee2560798

[CL 24468645 by slonopotamus in ue5-main branch]
2023-03-01 15:04:08 -05:00
axel riffard
890a90159e Fix iOS BP only builds on Windows
#jira UE-176987
#rb josh.adams
#preflight 63fec600437ce3e7f3ca8195

[CL 24457400 by axel riffard in ue5-main branch]
2023-02-28 22:41:22 -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
joe kirchoff
606c42edeb Module include path validation. Disabled until outstanding issues are fixed
#rnx
#jira UE-177808
#rb Tim.Smith

[CL 24412746 by joe kirchoff in ue5-main branch]
2023-02-24 19:01:37 -05:00
Josh Adams
c27379e9d2 Modern xcode changes
- .app is now fully made by Xcode, not partially by UBT/UAT (exe is copied into .app via shell script, and "cookeddata" is a folder reference in the Xcode proejct - for IOS/TVOS only for now)
- Updated how metadata files are found in the Metadata class, and template plist files are now called Info.Template.plst
- A prebuild script does some prep work to help with Xcode and UBT interaction, and the way our legacy build locations mess with Build after Archive
- Fixed some ".app" issues where the PRODUCT_NAME was missing
#rb self
#preflight 63f8fed82b1a2765f986f63f

[CL 24404636 by Josh Adams in ue5-main branch]
2023-02-24 13:35:13 -05:00
zack neyland
518bd7fbdb UBT: Disable chaining PCH when static analysis is enabled.
* Chaining PCH + Static Analysis results in crashing, so disable it.

#jira UE-178000
#preflight na

[CL 24351933 by zack neyland in ue5-main branch]
2023-02-21 17:53:05 -05:00
eric mcdaniel
e313746d0b Revise Windows platforms support for specifying of a platform header override
- previously WindowsPlatform set the platform header name override define to "Windows" and a derived class then removed it from the preprocessor definitions list
  - the removal was incorrect but this still resulted in the derived platform having a platform header name override which matched the patforms name so it still functioned correct
  - however, it would be cleaner to not set the platform header override name at all for that platform
  - setting of this preprocessor definition has been revised so that Windows platforms specify the override via a separate GetOverridePlatformHeaderName() method which may return null to indicate no override should be used

#rb David.Harvey
#jria none
#preflight 63f3f5f090198dffbaff5112
#rnx

[CL 24340262 by eric mcdaniel in ue5-main branch]
2023-02-21 10:56:42 -05:00
dmytro vovk
78c938fabd Fixed Android compilation
#jira UE-177855
#rb none

[CL 24315089 by dmytro vovk in ue5-main branch]
2023-02-20 11:05:09 -05:00
dmytro vovk
4e5047e935 Compile fix for Android LowLevelTests
#jira UE-177471
#rb none
[FYI] Chris.Babcock

[CL 24314939 by dmytro vovk in ue5-main branch]
2023-02-20 11:01:03 -05:00
swarm
b61361facf Secondary remote Mac
#jira UE-120589
# rb josh.adams
#preflight 63f2da7d90198dffbaaee3ff

[CL 24309059 by swarm in ue5-main branch]
2023-02-19 21:45:46 -05:00