Commit Graph

248 Commits

Author SHA1 Message Date
Joe Kirchoff
880c5bfd6e UnrealBuildTool: Begin moving common functions from clang based toolchains to base ClangToolChain.
#rb brandon.schaefer
#rb chris.babcock
#preflight 627ad0017e5f24d1ede6d5d0
#preflight 627ada7a0a5817c9d91562c0
#rnx

* Move ClangVersion variables to base class and share function to check version. A separate change will add a virtual function for parsing the clang version for each toolchain as to not add complexity to this change.
* GetCppStandardCompileArgument: Used by all, no differences
* GetCompileArguments_CPP: Used by all. Switch & Apple are overridden
* GetCompileArguments_C: Used by all, no differences
* GetCompileArguments_MM: Used by Linux & Apple. Apple is overridden.
* GetCompileArguments_M: Used by Linux & Apple. Apple is overridden.
* GetCompileArguments_CPP: Used by all. Switch & Apple are overridden.
* GetRTTIFlag: Used by Linux & Apple, no differences.

[CL 20131754 by Joe Kirchoff in ue5-main branch]
2022-05-10 19:08:08 -04:00
Joe Kirchoff
f558da572e UnrealBuildTool: Move include paths and defines into GetCLArguments_Global for LinuxToolChain
#rb trivial
#rnx
#preflight 627a98f4c42338be6525283e

[CL 20125291 by Joe Kirchoff in ue5-main branch]
2022-05-10 13:13:49 -04:00
brandon schaefer
7176cb3167 Update to new v20 toolchain
#jira none
#rb none
#preflight none

#ROBOMERGE-AUTHOR: brandon.schaefer
#ROBOMERGE-SOURCE: CL 20045613 in //UE5/Release-Engine-Staging/...
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20047133 by brandon schaefer in ue5-main branch]
2022-05-04 15:38:15 -04:00
brandon schaefer
4b12cc89bd Update Linux and libcxx/libcxxabi to new 13.0.1 LLVM
#jira UE-136811, UE-126026
#preflight 626829f6853fdb6fddc18797

#ROBOMERGE-OWNER: brandon.schaefer
#ROBOMERGE-AUTHOR: brandon.schaefer
#ROBOMERGE-SOURCE: CL 20030619 in //UE5/Release-5.0/... via CL 20045582
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20047117 by brandon schaefer in ue5-main branch]
2022-05-04 15:37:44 -04:00
Joe Kirchoff
96772589c4 UnrealBuildTool: Compile PCH with -fpch-instantiate-templates for Linux if compiling with clang 11+
#rb jonathan.adamczewski
#preflight 626984b40d4ac78d717f075b

Initial testing has shown this PCH flag improves clang compile time by up to 20%

This flag is the default for clang-cl so it already applies to windows clang builds. Other clang based platforms will be supported as additional testing is done.

https://reviews.llvm.org/D69585

Linux UnrealEditor Development:
- Before Total CPU Time: 114072.34375 s
- Before UBT Run Time: 00:26:05
- After Total CPU Time: 86165.671875 s
- After UBT Run Time: 00:20:43
Total CPU Time improvement 24.46%
UBT Run Time improvement 20.58%

Linux UnrealGame Development:
- Before Total CPU Time: 23445.140625 s
- Before UBT Run Time: 00:09:13
- After Total CPU Time: 18492.71875 s
- After UBT Run Time:  00:07:52
Total CPU Time improvement 21.12%
UBT Run Time improvement 13.56%

[CL 19943838 by Joe Kirchoff in ue5-main branch]
2022-04-27 14:34:39 -04:00
chris constantinescu
1278a26f76 Low level tests further refactoring and test resource deployment
#preflight 626955ed0d4ac78d716eacf0
#rnx

[CL 19941830 by chris constantinescu in ue5-main branch]
2022-04-27 12:36:35 -04:00
Joe Kirchoff
c4a445ac71 UnrealBuildTool: Mac and Linux -fpch-validate-input-files-content
This flag validates pch inputs using content only when the mtime check fails, allowing the build to not fail if the content does not actually differ.

#rb jonathan.adamczewski
#rnx
#preflight 6268708c820fbeb9a434bc28

[CL 19931628 by Joe Kirchoff in ue5-main branch]
2022-04-26 19:10:29 -04:00
josh adams
39bff31fff - Adding comments to the PlatformSDK files to note the version numbers are now in the Versions.cs files
#p4v-preflight-copy 19822331
#rb trivial
#jira none
#preflight 6261e093a21b75437128a095

[CL 19858470 by josh adams in ue5-main branch]
2022-04-21 19:26:22 -04:00
Joe Kirchoff
360b5f123c UnrealBuildTool: Set PreservePSYM in LinuxToolChainOptions rather than passing into LinuxToolChain constructor
#rnx
#rb trivial
#preflight 625df5396b021932254c361e

[CL 19798585 by Joe Kirchoff in ue5-main branch]
2022-04-18 20:01:56 -04:00
josh adams
0532d19399 - Split SDK versions into their own Versions.cs files
#rb eric.mcdaniel
#jira none
#preflight 6255a6309a0f82a3151d28aa

[CL 19723677 by josh adams in ue5-main branch]
2022-04-12 12:37:37 -04:00
Josh Adams
604aec8368 - Allow for multiple full sdks for a platform (uses a new SDKCollection class to gather sdk versions and their validityt, etc)
- Windows will be first to use it, but in a future CL, with toolchain separate from Windows SDK
- Cleaned up some of the PlatformSDK API to have fewer public members (mainly so the functions that receive multiple versions can be automatically populated with the current single version functions in the subclasses)
- Updated the Turnkey menu to handle multiple versions

#jira none
#rb david.harvey
#preflight 62508cd8f10bcc0f4fa8b5d1

[CL 19692492 by Josh Adams in ue5-main branch]
2022-04-08 15:34:51 -04:00
Joe Kirchoff
d0487689bf UnrealBuildTool: Relative pathing for Mac & Linux toolchains
#rb trivial
#rnx
#preflight 62474481f4217035fa9db83d

[CL 19593260 by Joe Kirchoff in ue5-main branch]
2022-04-01 14:56:46 -04:00
jonathan adamczewski
0a6164bbd3 nullability annotations, rethrow fixes, net6.0 warning suppression
#jira none
#trivial
#rnx
#preflight 62425155c61d8a458f230657

[CL 19536049 by jonathan adamczewski in ue5-main branch]
2022-03-28 20:50:06 -04:00
jonathan adamczewski
5c68d1d9ef Revert //UE5/Main/... changelist 19531725 - return to NET Core 3.1
#preflight 62422fd0470aff98e946bfce
#jira UE-119846

[CL 19534572 by jonathan adamczewski in ue5-main branch]
2022-03-28 18:25:19 -04:00
jonathan adamczewski
18ac15cbb1 Upgrade to .NET 6.0
#jira UE-119846
#preflight 6241fc06470aff98e943c035

[CL 19531725 by jonathan adamczewski in ue5-main branch]
2022-03-28 15:30:56 -04:00
matt johnson
01a13093c2 UnrealBuildTool: use colon prefix with -l linker flag to support linking libraries on Linux without "lib" prefix
This addresses an issue on Linux where libraries that do not have the "lib"
prefix can go missing at link time because the linker ends up looking for the
library with the prefix. For example, a library with the filename "foo.so"
would result in the "-lfoo" flag being added to the link command, which would
then cause the linker to look for a library with the name "libfoo" that does
not exist.

#rb brandon.schaefer
#preflight 6227a18ba83706728750078b

[CL 19337849 by matt johnson in ue5-main branch]
2022-03-10 12:25:37 -05:00
joe kirchoff
8024527e55 [Backout] - CL19292426
#fyi Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: bPreprocessDepends for LinuxToolChain

#rb trivial
#rnx
#preflight 6222b1759a2bb63d197e8fe0

[CL 19327816 by joe kirchoff in ue5-main branch]
2022-03-09 18:39:31 -05:00
Brandon Schaefer
b77c0617f8 Re-add printing build details
#jira none
#rb none
#fyi Michael.Sartain
#preflight none

[CL 19293091 by Brandon Schaefer in ue5-main branch]
2022-03-07 17:25:43 -05:00
Joe Kirchoff
abd6a221c6 UnrealBuildTool: bPreprocessDepends for LinuxToolChain
#rb trivial
#rnx
#preflight 6222b1759a2bb63d197e8fe0

[CL 19292426 by Joe Kirchoff in ue5-main branch]
2022-03-07 16:47:05 -05:00
Brandon Schaefer
abb990ba22 Fix cross building the Linux UnrealEditor from Windows where we no longer was running the FixDeps.bat script which is required to resolve circular depends issues
#jira UE-140387
#rb Michael.Sartain
#preflight none

[CL 19221827 by Brandon Schaefer in ue5-main branch]
2022-03-02 10:35:58 -05:00
Brandon Schaefer
d8b2a5f743 Fix being created UnrealEditor-ASan.target when building Editor with ASan enabled.
This is breaking EngineTest automated testing due how we looked up exe path based on the *.target file name.

*Note* This is pretty hacky, but since non-monolithic/editor builds already collide with the non-asan build dir this is ending up no worse.
Checked with Game/Monolithics are still working and correctly being renamed UnrealGame-ASan + UnrealGame-ASan.target

#jira none
#rb none
#fyi Michael.Sartain,
#preflight 6219a0e142189ae6226c6e94

[CL 19164898 by Brandon Schaefer in ue5-main branch]
2022-02-26 09:59:12 -05:00
Brandon Schaefer
fd27a866f9 Dont try to override the Editor with ASan until things are done at a much higher level. This causes issues with EngineTest + ASan
#jira none
#rb none
#preflight none
#fyi Michael.Sartain

[CL 19154545 by Brandon Schaefer in ue5-main branch]
2022-02-25 15:19:02 -05:00
joe kirchoff
68d3b6ae54 [Backout] - CL18683346
#fyi Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Ensure name suffixes are added if the TargetName is replaced in UEBuildTarget (manually merge due to conflict)

#rnx
#rb none
#preflight 61e9e7f6ab6e1cc028bd372a

[CL 19095177 by joe kirchoff in ue5-main branch]
2022-02-23 13:10:43 -05:00
joe kirchoff
85a12ceb91 [Backout] - CL19094839
#fyi joe.kirchoff
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL18683346
#fyi Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Ensure name suffixes are added if the TargetName is replaced in UEBuildTarget (manually merge due to conflict)

#rnx
#rb none
#preflight 61e9e7f6ab6e1cc028bd372a

[CL 19094975 by joe kirchoff in ue5-main branch]
2022-02-23 12:59:47 -05:00
joe kirchoff
e876024f01 [Backout] - CL18683346
#fyi Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Ensure name suffixes are added if the TargetName is replaced in UEBuildTarget (manually merge due to conflict)

#rnx
#rb none
#preflight 61e9e7f6ab6e1cc028bd372a

[CL 19094839 by joe kirchoff in ue5-main branch]
2022-02-23 12:54:09 -05:00