Commit Graph

216 Commits

Author SHA1 Message Date
Joe Kirchoff
49941df8c8 UnrealBuildTool: Prevent multiple target leaking bundle dependencies on Mac
#rnx
#rb Josh.Adams
#preflight 63d1978cbe435f17b408210c
#preflight 63d1af24be435f17b40e38f4

[CL 23858824 by Joe Kirchoff in ue5-main branch]
2023-01-25 17:55:46 -05:00
Brandon Schaefer
6863e11254 Fix ASan crashing in getaddrinfo. Bug introduced in LLVM 15 compiler-rt
https://github.com/llvm/llvm-project/issues/59007

#jira UE-175022
#preflight none
#rb James.Singer, Robert.Seiver

[CL 23856128 by Brandon Schaefer in ue5-main branch]
2023-01-25 16:15:04 -05:00
Brandon Schaefer
2fd67649f5 Re-fix arch name change
#jira none
#rb none
#preflight none

[CL 23834394 by Brandon Schaefer in ue5-main branch]
2023-01-24 13:26:46 -05:00
Brandon Schaefer
1e616e242d Fix build failure from new arch changes
#jira none
#rb none
#preflight none

[CL 23834129 by Brandon Schaefer in ue5-main branch]
2023-01-24 13:18:17 -05:00
Brandon Schaefer
adaafd04a5 Fix missing ASan*.so when running non-monolithic
#jira none
#rb none
#preflight none
#fyi Robert.Seiver, James.Singer

[CL 23833926 by Brandon Schaefer in ue5-main branch]
2023-01-24 13:03:28 -05:00
josh adams
1610c3bee3 UnrealArch/UnrealArchitectures changes
- Creates the UnrealArchitectures class, which wraps a list of UnrealArch objects
 - UnrealArch is a single architecture, expandable enum-like struct
 - There is no more concept of "no/default architecture", there is always a valid active architecture when building
 - Most uses of "string Architecture" are replaced with one of the two above, depending if multiple architectures are supported or not
 - UnrealArch has some platform-extensions for platform-specific naming (like Linux adds in LinuxName that turns, for instance, Arm64 -> aarch64-unknown-linux-gnueabi, which is used in folder names, etc)
 - UnrealArch has bIsX64 which can be used determine intel instruction set (as opposed to arm)
 - TargetRules class has an "Architecture" accessor that will return a single architecture if the active architectures is a single architecture, or throw an exception if multiple. This is useful in a majority of the cases where a paltform can only have a single architecture active in TargetRules (microsoft platforms, for instance, will create separate targets when compiling multiple architectures at once)
 - Added UnrealArchitectureConfig class, which contains all the architecture information for a platform (what architectures are supported, what ones are currently active for given project, etc)

#preflight 63c81fb5b065224750a1759e
#rb mike.fricker,roman.dzieciol,joe.kirchoff,dmytro.vovk,brandon.schaefer [various parts]
#p4v-preflight-copy 23562471

[CL 23829977 by josh adams in ue5-main branch]
2023-01-24 09:30:28 -05:00
Brandon Schaefer
895c73720f Move to new 15.0.1 LLVM Linux Toolchain
#jira UE-174139
#rb none
#fyi Ryan.Hummer, Zack.Neyland, Robert.Seiver, James.Singer
#preflight 63cedc59b91ac945f53281b9

[CL 23821785 by Brandon Schaefer in ue5-main branch]
2023-01-23 16:32:46 -05:00
Brandon Schaefer
e40d105c99 Fix missing removal of function
#jira none
#rb none
#preflight none

[CL 23795661 by Brandon Schaefer in ue5-main branch]
2023-01-20 15:07:51 -05:00
Brandon Schaefer
afdbf27e27 Remove check for supressing PIE and disable PIE unless being explicity enabled
#jira UE-174139
#preflight none
#rb James.Singer

[CL 23795617 by Brandon Schaefer in ue5-main branch]
2023-01-20 15:03:30 -05:00
Joe Kirchoff
4a262359a0 UnrealBuildTool: Store Action file lists in SortedSets rather than Lists, since these collections should never have duplicate entries and sorting them helps when checking for action conflicts
Requires implementing IComparable\IEquatable in FileItem (and I also implemented them in DirectoryItem for consistency)

#rnx
#rb Tim.Smith
#preflight 63c1cce4a06ab115ea17ba4f
#preflight 63c70f4d7763631ba15486ea

[CL 23745743 by Joe Kirchoff in ue5-main branch]
2023-01-17 16:35:14 -05:00
Josh Adams
b337b06556 - Allow for a platform to compile for multiple architectures, and have the high-level compile separately, and then link not separately (this means we can't use the one-target-per-architecture stuff that is already present)
- Mac changes to compile separately,  but link together (with lipo) after making two .dylibs/executables
- Removed FixDylibDependencies on Mac by making "stub dylibs" to mimic what Windows does with import libs, to solve circular dependencies
- Added DependenciesToSkipByArchitecture to ModuleRules that is used, when making a new single-arch LinkEnvironment from a multi-arch LinkEnvironment, to strip out libraries, etc, that should not be included with that single architecture
#preflight 6387891b4004f73f623c85a0
#rb zack.neyland

[CL 23336522 by Josh Adams in ue5-main branch]
2022-11-30 13:38:45 -05:00
brandon schaefer
4f85084928 [UBT] Add options to enable pie and stack protector for target rules
disabled by default

#rb Josh.Adams, Zack.Neyland
#preflight 637526e4ee4d25f90aa62e6c

[CL 23163701 by brandon schaefer in ue5-main branch]
2022-11-16 17:02:54 -05:00
danny couture
97ea0dc8d7 Fix missing frame pointer when using TSAN
#rnx
#rb Brandon.Schaefer
#preflight skip

[CL 22781606 by danny couture in ue5-main branch]
2022-10-26 11:44:54 -04:00
bryan sefcik
1599bfae2e Rewrote the GenerateClangDatabase mode in UBT to work with the clang tools like IWYU.
#preflight 63052ee5c744dac967fc287f

[CL 21519266 by bryan sefcik in ue5-main branch]
2022-08-23 16:36:20 -04:00
dmytro vovk
37b8ab825c Deprecated bCompileForSize UBT Target option and replaced with OptimizationMode enumto fine tune a balance between speed and\or code size
#jira none
#rb Joe.Kirchoff
#preflight 62ff99b0200ff87e07f75a69

[CL 21511266 by dmytro vovk in ue5-main branch]
2022-08-23 12:44:36 -04:00
Joe Kirchoff
5ef701b076 UnrealBuildTool: Clean up clang toolchain paths and versioning.
Remove need for most of the derived classes to override CompileCPPFiles

#rnx
#rb trivial
#preflight 62cc8862f22e9d4fdf79a882

[CL 21047169 by Joe Kirchoff in ue5-main branch]
2022-07-11 16:55:46 -04:00
Joe Kirchoff
cb03528d80 UnrealBuildTool: Support preprocess depends for all clang not just Mac and Linux
#rnx
#rb none
#preflight 62c5b8bd3c5171c8170b79f8

[CL 20968771 by Joe Kirchoff in ue5-main branch]
2022-07-06 12:56:18 -04:00
marc audy
7c7733328f Update Main from //Fortnite/Dev-EngineMerge [at] 20952818
This represents UE5/Main [at] 20628573
#jira
#rnx

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 20960321 via CL 20962677 via CL 20962692
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)

[CL 20963796 by marc audy in ue5-main branch]
2022-07-06 05:11:09 -04:00
Joe Kirchoff
a29460d1c3 UnrealBuildTool: Reconcile compile action logic to ClangToolChain.CompileCPPFile
#rnx
#rb none
#preflight 62c47ad42823f28cf2351ae4

[CL 20946880 by Joe Kirchoff in ue5-main branch]
2022-07-05 14:48:11 -04:00
Joe Kirchoff
5767bdf3c1 UnrealBuildTool: Override for clang additional arguments
#rb trivial
#rnx
#preflight 62bf40693f0d6beee2e9b016

[CL 20919016 by Joe Kirchoff in ue5-main branch]
2022-07-01 15:02:48 -04:00
Joe Kirchoff
07609ca984 UnrealBuildTool: Reconcile file type specific clang arguments
#rnx
#rb none
#preflight 62bdecf73f0d6beee29aee57

[CL 20901126 by Joe Kirchoff in ue5-main branch]
2022-06-30 15:00:14 -04:00
Joe Kirchoff
c3b0253c1f UnrealBuildTool: Clean up how pch is forced included for clang toolchains
#rnx
#rb none
#preflight 62ba4d2fdc1cd7fc47d772d1
#preflight 62bb3543101ad5bf64b06350

[CL 20861610 by Joe Kirchoff in ue5-main branch]
2022-06-28 13:26:19 -04:00
Joe Kirchoff
2f287b4758 UnrealBuildTool: Use filesystem references for sysroot and clang tool paths, instead of strings
#rnx
#rb none
#preflight 62ba445cba62f4498a551c96

[CL 20843375 by Joe Kirchoff in ue5-main branch]
2022-06-27 20:18:23 -04:00
Joe Kirchoff
e1360f7b34 UnrealBuildTool: Build string list for LinuxToolChain.GetLinkArguments
#rb none
#rnx
#preflight 62ba347cde2c0f4cf8984839

[CL 20842900 by Joe Kirchoff in ue5-main branch]
2022-06-27 19:21:20 -04:00
brandon schaefer
a8bef937c7 Force 5.0.3 to support only v20 LLVM 13.0.1
Due to v19 no linking correctly as well as older LLVM versions that dont support C++17 anyway

#jira UE-157592
#preflight 62b9f3f6e77151e599791232
#rb Joe.Kirchoff, Robert.Seiver, James.Singer
#lockdown jessica.agee

#ROBOMERGE-OWNER: brandon.schaefer
#ROBOMERGE-AUTHOR: brandon.schaefer
#ROBOMERGE-SOURCE: CL 20837379 in //UE5/Release-5.0/... via CL 20838337
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)

[CL 20840089 by brandon schaefer in ue5-main branch]
2022-06-27 17:21:45 -04:00