Commit Graph

171 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
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
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
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
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
651a65add0 Disable ASan leak detector by default. While it does detect leaks we have many many leaks that are not proper in UEs term which mean we ignore all the current leaks.
Need to look into a suppression file for these so we can re-enable this

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

[CL 19017210 by Brandon Schaefer in ue5-main branch]
2022-02-16 12:41:56 -05:00
robert millar
79c81fc408 Add support for bRetainFramePointers to LinuxToolChain.
Add command line argument for bRetainFramePointers.

#rb brandon.schaefer
[FYI] nuno.leiria

#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 18981122 via CL 18981257 via CL 18981859 via CL 18982123 via CL 18982359 via CL 18992714 via CL 18993053
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18997362 by robert millar in ue5-main branch]
2022-02-15 11:35:34 -05:00
Joe Kirchoff
0e82220d96 UnrealBuildTool: Support -Timing for Linux & Mac
#rb trivial
#rnx
#preflight none

[CL 18924988 by Joe Kirchoff in ue5-main branch]
2022-02-09 16:56:59 -05:00
nuno leiria
5313adf716 Rename LibCxx lib folder from Linux to Unix
#jira UE-134907
#preflight 61f19e172f38223e17bcfda9
#rb brandon.schaefer

#ROBOMERGE-AUTHOR: nuno.leiria
#ROBOMERGE-SOURCE: CL 18740979 in //UE5/Release-5.0/... via CL 18741580 via CL 18742832
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18743201 by nuno leiria in ue5-main branch]
2022-01-26 15:35:55 -05:00
arne schober
f1dfec810d REL - Consolidate Coroutine compiler switches
#preflight 61eb2a6bc557ec200193db0d

#ROBOMERGE-AUTHOR: arne.schober
#ROBOMERGE-SOURCE: CL 18701113 in //UE5/Release-5.0/... via CL 18701116 via CL 18701155
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18701160 by arne schober in ue5-main branch]
2022-01-21 22:42:24 -05:00
jonathan adamczewski
65f389b113 UBT: Add minimal C++ coroutine support
#jira none
#preflight 61e851d4b875abaf3325e52a

#ROBOMERGE-AUTHOR: jonathan.adamczewski
#ROBOMERGE-SOURCE: CL 18663529 in //UE5/Release-5.0/... via CL 18663561 via CL 18663611
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18663658 by jonathan adamczewski in ue5-main branch]
2022-01-19 15:08:30 -05:00
brandon schaefer
0880d4d51c Fix arm64 not using lld, causing a linker error
#jira UE-139455
#rb none
[FYI] Michael.Sartain, Jonathan.Adamczewski
#preflight none

#ROBOMERGE-AUTHOR: brandon.schaefer
#ROBOMERGE-SOURCE: CL 18649238 in //UE5/Release-5.0/... via CL 18649811 via CL 18650071
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18650314 by brandon schaefer in ue5-main branch]
2022-01-18 17:55:48 -05:00
jonathan adamczewski
1f97d3c26e UnrealBuildTool: Remove references to UE4, changes affecting Linux
#jira UE-111420
#rb brandon.schaefer
#preflight none

#ROBOMERGE-AUTHOR: jonathan.adamczewski
#ROBOMERGE-SOURCE: CL 18565898 in //UE5/Release-5.0/... via CL 18565904
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18565911 by jonathan adamczewski in ue5-release-engine-test branch]
2022-01-10 17:07:17 -05:00
aleksandr-urakov
d9d78ddffc PR #8702: Add an option for better LLDB support by UBT on Linux (Contributed by aleksandr-urakov)
#jira UE-137052
#ushell-cherrypick of 18418195 by UnrealBot
[at]Brandon.Schaefer
#preflight trivial

#ROBOMERGE-AUTHOR: michael.sartain
#ROBOMERGE-SOURCE: CL 18560955 in //UE5/Release-5.0/... via CL 18560962
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18560974 by aleksandr-urakov in ue5-release-engine-test branch]
2022-01-10 11:51:16 -05:00
joe kirchoff
12ada00dd6 UnrealBuildTool: Linux clang 12 -fbinutils-version=2.36
#rnx
#rb trivial
#preflight 61d783c2d17842e547d00e47

#ROBOMERGE-AUTHOR: joe.kirchoff
#ROBOMERGE-SOURCE: CL 18537990 in //UE5/Release-5.0/... via CL 18537996
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18538004 by joe kirchoff in ue5-release-engine-test branch]
2022-01-06 19:22:11 -05:00