Commit Graph

215 Commits

Author SHA1 Message Date
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
Tim Smith
76e9046282 Adding a simpler command line option to UHT mode where it will generate the manifest instead of depending on one already being generated. This will greatly simplify testing in the future by allowing A/B testing to be done without the need of building the target (to get the manifest)
#rb trivial
#rnx
#preflight 622272d2945d64b4ec42cf9e

[CL 19273756 by Tim Smith in ue5-main branch]
2022-03-04 15:23:52 -05:00
Tim Smith
2bf67af6e7 UHT in UBT initial version. Currently disabled.
Tested against UnrealEditor, ShooterGame, QAGame, FortniteGame, Lyra, CitySample, and a local project

Ciode review was a preliminary review for a coding style.

#rnx
#rb jonathan.adamczewski, joe.kirchoff
#preflight 6220cfb76f26901529b6514e

[CL 19243710 by Tim Smith in ue5-main branch]
2022-03-03 09:59:05 -05:00