Commit Graph

385 Commits

Author SHA1 Message Date
Tim Smith
16f2bed91a Remove all GetProperty calls
#rb self
#rnx
#preflight 60ac45318194e7000114aea5

[CL 16443629 by Tim Smith in ue5-main branch]
2021-05-24 21:36:39 -04:00
Tim Smith
268d862932 Removed most of GetClass calls.
#rb self
#rnx
#preflight 60abf088bb309000018d647f

[CL 16439221 by Tim Smith in ue5-main branch]
2021-05-24 15:36:52 -04:00
Tim Smith
7e79fc7175 Removing GetScriptStruct and GetStruct as much as possible.
#rb self
#rnx
#preflight 60abcdea04188d0001af7b39

[CL 16437013 by Tim Smith in ue5-main branch]
2021-05-24 13:00:29 -04:00
Tim Smith
64372c2039 Changed more routines to not use UFunction type.
Removed GetEnum as much as possible.

#rb self
#rnx
#preflight 60aba9191d02bb00011bb579

[CL 16435208 by Tim Smith in ue5-main branch]
2021-05-24 10:08:26 -04:00
Tim Smith
106a3a8a0f Removed most calls to GetFunction (parser still uses it a lot)
#rb self
#rnx
#preflight 60ab8a011d02bb00011807f0

[CL 16434562 by Tim Smith in ue5-main branch]
2021-05-24 07:56:32 -04:00
Tim Smith
ad65d8180e Removed the global maps for the code generation version, RigVM, and declaration ranges.
#rb self
#rnx
#preflight 60aa80201d7849000177dd7c

[CL 16432328 by Tim Smith in ue5-main branch]
2021-05-23 13:04:58 -04:00
Tim Smith
69403fc4bc Remove most of the engine types from the exporter API
#rb self
#rnx
#preflight 60aa43021d02bb0001009701

[CL 16431738 by Tim Smith in ue5-main branch]
2021-05-23 08:46:15 -04:00
Tim Smith
c9572b225e Remove FClasses
#rb self
#rnx
#preflight 60a9103c3df6e300012d8aec

[CL 16429489 by Tim Smith in ue5-main branch]
2021-05-22 10:50:10 -04:00
Tim Smith
224901db8a Change PropertyBase to reference new types.
#rb self
#rnx
#preflight 60a8eae36905a600014ed8c5

[CL 16429032 by Tim Smith in ue5-main branch]
2021-05-22 08:04:39 -04:00
Tim Smith
5c7b33f9e5 More UnrealHeaderTool refactoring
Remove FClass
Remove ClassDeclarationMetaData

#rb self
#rnx
#preflight 60a7c6140569f30001673b9c

[CL 16419880 by Tim Smith in ue5-main branch]
2021-05-21 11:52:09 -04:00
Tim Smith
377b8798c5 Added new PropertyTypes which in the long run will be where different property types are implemented.
Added new casting system betwen the different type definitions.  This allows some patterns that makes the code easier.
Moved some direct calls to engine API to FClasses.
More property data moved to the property definition.
Replacing a many more instances of referencing engine type directly with referencing UHT types.
Removed the FToken from the property data.  Saved 600MB of memory on some titles.

#rb jonathan.adamczewski
#rnx

[CL 16416114 by Tim Smith in ue5-main branch]
2021-05-21 07:29:12 -04:00
Tim Smith
bd61dcb8c9 Adding the interface's hash code to classes to make sure they re-instance properly when the interface is changed.
#rb trivial
#rnx
#jira UE-116130
#preflight 60a655329e68c200018bb551

[CL 16401399 by Tim Smith in ue5-main branch]
2021-05-20 09:06:03 -04:00
Tim Smith
9915ffe5a7 Merging the base class structure into the main type info.
Produced a common inheritance parser.
Added error return for when verification fails

#rb jonathan.adamczewski
#rnx
#preflight 60a4ef3cb7ccb00001771494

[CL 16383144 by Tim Smith in ue5-main branch]
2021-05-19 07:42:12 -04:00
Tim Smith
2504290d2e Remove the compiler meta data manager.
Elimination of some quick to resolve type system lookups.

#rnx
#rb jonathan.adamczewski
#preflight 609e5a1dcbf9a40001fe9778

[CL 16328413 by Tim Smith in ue5-main branch]
2021-05-14 07:48:15 -04:00
Tim Smith
b854f16fff Remove the singleton type cache and the package name cache.
#rb jonathan.adamczewski
#rnx
#preflight 609c286edc97da0001256a61

[CL 16305562 by Tim Smith in ue5-main branch]
2021-05-12 16:27:07 -04:00
Andrew Davidson
3ddc3a4da3 Merge up from //UE5/Dev-LargeWorldCoordinates
#rb none

[CL 16211417 by Andrew Davidson in ue5-main branch]
2021-05-05 15:07:25 -04:00
Tim Smith
e7ea9ed28b 1) Create the Function type information that provides the UHT data for functions.
2) Remove the global hash storage system since it is moved into the Function type information.
3) Remove some unsed classes and methods.
4) Added the TEMPORARY auto creation of base engine types until they can be added to the no export file.

#rb marc.audy
#rnx
#preflight 60893ddb2377910001be8638

[CL 16142341 by Tim Smith in ue5-main branch]
2021-04-28 07:34:10 -04:00
Tim Smith
af13fdc41f Fix MAC compile issue
Fix coding standard error with enum declaration.

#rb trivial
#rnx

[CL 16023962 by Tim Smith in ue5-main branch]
2021-04-15 14:09:22 -04:00
Tim Smith
808f81dd6c Performance improvements and clean up in preperation for a Live Coding fix.
1) Refactored preparsing to scan for @UCLASS, @USTRUCT, and @ENUM and define then.  This means that no new entries into the type definition info system will be added after pre-parsing and thus remove the need for any type of locking during code generation.
2) Parsing and code generation is now being done in a strict order based on dependencies and no longer by project.  This removes the need of explicitly parsing depedencies first or waiting on hashes to be computed.  (Provided a 50%-80% improvement in code generation time)
3) Changed HeaderParser to be specific to one source file.  Removed the need to pass the source file around since it is always known at construction time.  Simplified some error handling logic.
4) Changed parallel for loops to using event graph to provide more concurrency.
5) Refactored the main program flow into concise steps.

Testing:

Verified that the headers generated exactly the same for:

1) First person C++ Project
2) UnrealEditor
3) QAGame
4) ShooterGame
5) FortniteGame

FYI: Marc had reviewed this as part of a larger change but some parts were extract.  These are the remaining changes.

#rb marc.audy
#rnx
#preflight 6078666a02850d00010e22c5

[CL 16023636 by Tim Smith in ue5-main branch]
2021-04-15 13:44:34 -04:00
Tim Smith
5c94acdaa1 Provide a more general exception class.
New mechanism for maintaining the overall result.
Helper methods for making try blocks.

Work in progress

#rb steve.robb
#rnx
#preflight 607706d22674e100018f74af

[CL 16006480 by Tim Smith in ue5-main branch]
2021-04-14 11:55:52 -04:00
Marc Audy
01b7c9f4f5 Merge UE5/RES @ 15958325 to UE5/Main
This represents UE4/Main @ 15913390 and Dev-PerfTest @ 15913304

[CL 15958515 by Marc Audy in ue5-main branch]
2021-04-08 14:32:07 -04:00
Tim Smith
d9a3b5af20 Minor changes to stablize UHT code generation in preperation for more extensive performance changes.
#rb devin.doucette
#rnx

[CL 15915280 by Tim Smith in ue5-main branch]
2021-04-05 09:17:25 -04:00
Tim Smith
11119486ae Fix issue where if in a single include file, we define UMyInterface, implement IMyInterface, and implement the interface in a UObject, UHT would generate a circular dependency error.
The fix is to ignore identifier references that resolve to the same source file.

#rb none

[CL 15873286 by Tim Smith in ue5-main branch]
2021-03-31 07:49:15 -04:00
Tim Smith
a9dd8d0077 Client fails to build due to an assert in UHT.
#rb trivial
#jira UE-111972

#ushell-cherrypick of 15850207 by Tim.Smith

[CL 15850311 by Tim Smith in ue5-main branch]
2021-03-29 09:30:09 -04:00
Jamie Dale
4ca8447908 Fixed bad merge
#fyi Ben.Marsh, Tim.Smith
#rb none
#rnx

[CL 15815140 by Jamie Dale in ue5-main branch]
2021-03-24 22:16:13 -04:00