Commit Graph

371 Commits

Author SHA1 Message Date
Tim Smith
4e09fb650a Implement a common meta data container to be shared between all types.
Moving more property functionality into PropertyTypes
Assorted cleanup of other methods.

#rb self
#rnx

[CL 16447199 by Tim Smith in ue5-main branch]
2021-05-25 09:43:57 -04:00
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
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
85fc123dc0 Removed the FTokenData and FPropertyData. Information has been moved to the type system.
#rb jonathan.adamczewski
#rnx
#preflight 609d0a38a5e8310001bc76ac

[CL 16311618 by Tim Smith in ue5-main branch]
2021-05-13 07:56:52 -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
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -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
40530ddda5 Fixing UHT pre-parsing issue exposed by the addition of UENUM And USTRUCT parsing.
#rb trivial
#rnx

#ushell-cherrypick of 16049621 by Tim.Smith

[CL 16050141 by Tim Smith in ue5-main branch]
2021-04-19 09:11:16 -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
6de85bf8f7 Quick fix to Enum type definition constructor.
Moving the UHTConfig to BaseParser along with a support routine to be used by a future change.

#rb trivial
#rnx
#preflight 607764150af8c60001c4a435

[CL 16013445 by Tim Smith in ue5-main branch]
2021-04-14 18:40:45 -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
Tim Smith
efd5202878 Move the initialization of constant configuration data into a class explicitly initialized at startup.
This avoids a race condition with lazy initialization.

#rb steve.robb
#rnx
#preflight 606f00331e3c670001e4f483

[CL 15954147 by Tim Smith in ue5-main branch]
2021-04-08 10:02:55 -04:00
Tim Smith
c002b94acf Cleanup the usage of FClasses. Remove the need to pass around AllClasses when the majority of the time, the methods being invoked could be static. Removed methods that are currently unused.
#rb steve.robb
#rnx

[CL 15948334 by Tim Smith in ue5-main branch]
2021-04-07 19:43:18 -04:00