Commit Graph

217 Commits

Author SHA1 Message Date
Joe Kirchoff
2a261c113d EpicGames.Core: Obsolete ReadOnlyHashSet in favor of IReadOnlySet
#rb Ben.Marsh
#preflight 641e1145a86ae7cbcc86bc53

[CL 24789316 by Joe Kirchoff in ue5-main branch]
2023-03-24 17:59:47 -04:00
Ben Marsh
7e26c34d2b EpicGames.Core: Deprecate legacy log methods to prefer structured logging interface.
#preflight 640a23d928026468d9de7cbd

[CL 24580590 by Ben Marsh in ue5-main branch]
2023-03-09 14:51:40 -05:00
Joe Kirchoff
935138d8b6 UnrealBuildTool: Make module include path warning debugging output instead
#rnx
#rb trivial
#preflight 63ed259d514832b242b74964

[CL 24235564 by Joe Kirchoff in ue5-main branch]
2023-02-15 13:45:16 -05:00
josh adams
f881608487 - Fixing location for UHT generated headers to not have architecture in the path, because they are per-arch, and with InstalledBuilds, if we made a Universal build, but then user does non-universal, the UHT intermediates would look in a different location than where we put them ('arm64' vs 'arm64+x64')
#jira UE-176191
#preflight 63e401713c44c83044e5b2c3

[CL 24214920 by josh adams in ue5-main branch]
2023-02-14 12:40:03 -05:00
bryan sefcik
592942fad7 Added support for Clang PCH chaining
https://clang.llvm.org/docs/PCHInternals.html#chained-precompiled-headers

Linux - EngineTestEditor -allmodules
Before:
Total PCH Size: 3.41 GB

After:
Total PCH Size: 2.65 GB

#jira
#rb joe.kirchoff
#preflight 63e57da9636f66aac7dc1818

[CL 24114121 by bryan sefcik in ue5-main branch]
2023-02-09 22:37:30 -05:00
henrik karlsson
67e29b9c10 [UBT]
* Deleted code that should be deleted after 5.2

#preflight skipped
#rb tim.smith

[CL 23923936 by henrik karlsson in ue5-main branch]
2023-01-31 01:25:57 -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
Joe Kirchoff
ede136ba5a UnrealBuildTool: Ensure Module.bHasUObjects is set for IncludePathModules as well, so this property is consistent when building a Target with -AllModules and the generated UHT path is added to the include paths when compiling
#rnx
#jira UE-174751
#rb Tim.Smith
#preflight 63ced865976daa618c1fa160

[CL 23821153 by Joe Kirchoff in ue5-main branch]
2023-01-23 15:57:40 -05:00
Tim Smith
106b956993 Remove C++ UHT as the UHT to be used to generate headers. This does not remove the ability to build C++ UHT as a target.
#rb joe.kirchoff
#preflight 63c84257fb1a8cf245e538c4

[CL 23761220 by Tim Smith in ue5-main branch]
2023-01-18 14:14:27 -05:00
Tim Smith
7b744efd60 Added ability to force the usage of C++ UHT even if the warning has been enabled.
#rb robert.millar
#rnx
#preflight 638506c6ca02aa2c49b47ee2

[CL 23294078 by Tim Smith in ue5-main branch]
2022-11-28 14:13:03 -05:00
joe kirchoff
1eb7b0cf74 UnrealHeaderTool: Update #include paths to be relative to the module's available include path rather than always using the module's parent directory
#rb Tim.Smith
#preflight 635c2d0c1803be35c7714697

[CL 22850540 by joe kirchoff in ue5-main branch]
2022-10-29 01:54:08 -04:00
joe kirchoff
9b250b2268 [Backout] - CL22830574
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealHeaderTool: Update #include paths to be relative to the module's first public include path (or the generated UHT path if no public include paths are available) rather than the module's parent directory

#rb Tim.Smith
#preflight 635b0719015611ae3a0779d1

[CL 22832250 by joe kirchoff in ue5-main branch]
2022-10-28 13:41:02 -04:00
joe kirchoff
3cb16277fe UnrealHeaderTool: Update #include paths to be relative to the module's first public include path (or the generated UHT path if no public include paths are available) rather than the module's parent directory
#rb Tim.Smith
#preflight 635b0719015611ae3a0779d1

[CL 22832204 by joe kirchoff in ue5-main branch]
2022-10-28 13:40:18 -04:00
bryan sefcik
4a0fa07264 Optimized how files were iterated on when scanning the directories.
#jira
#preflight 633508bec351ce85fafc300b

[CL 22244215 by bryan sefcik in ue5-main branch]
2022-09-29 02:27:28 -04:00
tim smith
a13076902b Added warnings when C++ UHT is used. These warnings include the reasons why C++ UHT is being used. The warning is currently disabled but informational messages will still be generated.
#rb
#preflight 6322088da514fd1e37319c62

[CL 22015813 by tim smith in ue5-main branch]
2022-09-14 16:44:09 -04:00
henrik karlsson
9b603cee85 [UnrealBuildTool]
* Added support for ".ubtignore" files that can be put in a folder to make ubt ignore the folder and its subfolder
* Fixed bug where project's plugin and source folder were visited multiple times (look in FileMetadataPreftch.cs)
* Changed so Lazy<File/DirectoryItem> is resolved directly on windows platform and only do the extra refresh on mac/linux (there seems to be some bugs on those platforms and we don't want to pay extra cost on windows)
* Added runtimeconfig.template.json and changed UnrealBuildTool to use server gc and a few more settings that improve performance
* Added so all file traversing paths is aware of .uplugin
* Added debug code to be able to write out which files that have been touched during UBT execution. This can serve as a way to identify places to add .ubtignore files

#rb Joe.Kirchoff
#preflight 62f685f8cf7afa018ba0a4a5

#ROBOMERGE-AUTHOR: henrik.karlsson
#ROBOMERGE-SOURCE: CL 21360427 via CL 21371108 via CL 21371121 via CL 21371139
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21371637 by henrik karlsson in ue5-main branch]
2022-08-13 02:43:13 -04:00
Ben Marsh
c0f0e0679e UBT: Fix UHT output not being run through log parser.
#preflight none

[CL 20736036 by Ben Marsh in ue5-main branch]
2022-06-20 08:49:54 -04:00
Ben Marsh
cbb950c578 UBT: Use ILogger throughout UBT, rather than legacy EpicGames.Core.Log methods. All output going forwards should use structured logging rather than String.Format style logging.
#preflight 628e9dc6e746de4961f60032

[CL 20373777 by Ben Marsh in ue5-main branch]
2022-05-25 19:55:37 -04:00
Tim Smith
36421e5c91 Minor refactor to UBT plugins.
Added support for props file for UBT plugins.  Needed for packaging of plugins having a ubt plugin

#rnx
#rb trivial
#preflight 62694f6a7f6900cdefa9431c

[CL 19939499 by Tim Smith in ue5-main branch]
2022-04-27 10:30:21 -04:00
Tim Smith
ee9ae5c66a Adding UBT plugin support currently only used by UHT
#rb jonathan.adamczewski ben.marsh
#preflight 625ff59ace2ef75d47707e74

[CL 19828042 by Tim Smith in ue5-main branch]
2022-04-20 08:27:26 -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
markus breyer
f2f4745eb2 Removed obsolete module rules property AdditionalCodeGenDirectories
#rb jonathan.adamczewski
#rnx
#preflight 62390b870820efd0948fbc5e

#ROBOMERGE-AUTHOR: markus.breyer
#ROBOMERGE-SOURCE: CL 19461822 via CL 19465279 via CL 19465809 via CL 19475541 via CL 19475821
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v935-19464907)

[CL 19476440 by markus breyer in ue5-main branch]
2022-03-23 01:25:15 -04:00
marc audy
be5732dd4b Generated code for UHT and VNI now stored in separate subfolders of the generated code directory
- so they can be independently wiped
- fix for build errors caused by stale files leftover from moved/renamed UBT module

#rb jonathan.adamczewski, tim.smith
#rnx
#preflight 6238de1704769ab493478dc1

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: markus.breyer
#ROBOMERGE-SOURCE: CL 19458771 via CL 19462083 via CL 19463537 via CL 19475357 via CL 19475717
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v935-19464907)

[CL 19476295 by marc audy in ue5-main branch]
2022-03-23 00:51:39 -04:00