Commit Graph

31 Commits

Author SHA1 Message Date
Mikolaj Sieluzycki
a342337136 UHT enforces user defined _Validate and _Implementation functions to be "virtual".
[CL 2517391 by Mikolaj Sieluzycki in Main branch]
2015-04-20 06:19:21 -04:00
Mikolaj Sieluzycki
d77f990644 Back out changelist 2515530
[CL 2515554 by Mikolaj Sieluzycki in Main branch]
2015-04-17 04:37:38 -04:00
Mikolaj Sieluzycki
cf4bc20014 UHT enforces user defined _Validate and _Implementation functions to be "virtual".
#codereview Robert.Manuszewski

[CL 2515530 by Mikolaj Sieluzycki in Main branch]
2015-04-17 04:04:20 -04:00
Jaroslaw Surowiec
1e12abcfd8 UHT Fix
#codereview steve.robb

[CL 2511512 by Jaroslaw Surowiec in Main branch]
2015-04-14 08:03:34 -04:00
Mikolaj Sieluzycki
3483da7d5a Stop UHT from emiting warnings on missing *_Validate and *_Implementation functions
Introduce versioning system to GENERATED_*BODY macros
Search for existing functions using case sensitive and whole word match.
Move checks for existing of *_Validate and *_Implementation functions to *generated.cpp to allow changing that code in hotfixes.
#codereview Robert.Manuszewski

[CL 2508131 by Mikolaj Sieluzycki in Main branch]
2015-04-10 06:02:22 -04:00
Michael Noland
6ef30e720a Optimized UnrealHeaderTool
- Optimized Tabify and Macroize
- Replaced various %s Spc(constant) calls with direct string literals
- Replaced injected indentation spaces with tabs (avoiding some of the work in Tabify; they were ultimately being replaced anyways)
- Replaced various %s of LINE_TERMINATOR with compile-time string literal concatenation
- Avoided case-insensitive work in various places
- Replaced direct references to FStringOutputDevice with a typedef to facilitate future optimizations
- Used Reset() instead of Empty() on various string builders and strings to reduce reallocations
[INTEGRATE] Change 2494450 by Michael.Noland@mnoland-T2784-HDepot on 2015/03/27 16:48:25

[CL 2494606 by Michael Noland in Main branch]
2015-03-27 18:10:52 -04:00
Jaroslaw Palczynski
b8c4d83b9c Enabling UHT to digest GENERATED_BODY instead of GENERATED_*_BODY.
#codereview Robert.Manuszewski

[CL 2481360 by Jaroslaw Palczynski in Main branch]
2015-03-17 06:02:26 -04:00
Jaroslaw Palczynski
f23f29257b Back out changelist 2481333
Rob asked me to back out GENERATED_*_BODY -> GENERATED_BODY change for now until the "_Validate and _Implementation auto-generation" discussion is over.

#codereview Robert.Manuszewski

[CL 2481343 by Jaroslaw Palczynski in Main branch]
2015-03-17 05:38:32 -04:00
Jaroslaw Palczynski
fa31560e2d Enabled UHT to digest GENERATED_BODY instead of GENERATED_UCLASS_BODY, GENERATED_USTRUCT_BODY, GENERATED_UINTERFACE_BODY or GENERATED_IINTERFACE_BODY, changed every occurence to the new syntax and fixed every warning that have fallen out of this change.
#codereview Robert.Manuszewski

[CL 2481333 by Jaroslaw Palczynski in Main branch]
2015-03-17 05:19:11 -04:00
Jaroslaw Palczynski
3c450b9477 UE-10111: Hot Reload crash with Scene Component tied to Actor class
We've changed the way vtable ptr are obtained for UClasses. Right now we use special empty constructor to get it, so we don't have to use normal one which was causing troubles. This special vtable helper constructor is generated automatically for most cases, but sometimes it's not possible (e.g. no default constructor for members types). In such case there is a possibility to override that generated constructor and write a custom one. The signature is UCustomClass::UCustomClass(FVTableHelper& Helper) and it needs to call base class'es constructor with the same parameter. Please do not use these constructors for anything else. There is no guarantee the object will be in correct state after calling this.

You can still disable this functionality if something breaks, just set WITH_HOT_RELOAD_CTORS to 0.

[CL 2466152 by Jaroslaw Palczynski in Main branch]
2015-03-02 06:44:04 -05:00
Jaroslaw Palczynski
adecd4aaad UHT: Allows defining multiple UCLASSes in one header file.
[CL 2412156 by Jaroslaw Palczynski in Main branch]
2015-01-20 09:33:54 -05:00
Jaroslaw Palczynski
494b01ca46 UHT: Splitting generated CPP files fix.
UECORE-73

[CL 2408543 by Jaroslaw Palczynski in Main branch]
2015-01-16 05:02:48 -05:00
Mikolaj Sieluzycki
4b1f513db4 Emit warning if GetLifetimeReplicatedProps and functions with _Implementation and _Validate suffixes aren't declared.
#codereview Robert.Manuszewski

[CL 2385673 by Mikolaj Sieluzycki in Main branch]
2014-12-11 11:49:41 -05:00
Mikolaj Sieluzycki
70df0c36e9 Don't automatically create function declarations in UHT that user has to implement.
#codereview Steve.Robb

[CL 2380157 by Mikolaj Sieluzycki in Main branch]
2014-12-08 07:30:42 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Jaroslaw Palczynski
cc0f6d9a4e UObject custom constructors.
In order to use new feature user have to change GENERATED_UCLASS_BODY() macro to the new GENERATED_BODY(). Then no constructor is implicitly declared. If there is no constructor declared in UCLASS then PCIP one is declared and defined that passes PCIP down to super-class. On the other hand if there is a constructor declared then UObject system expects to have one of the default or PCIP constructor to initialize a class during loading from disk, default object creation, etc. and it expects that user will declare and define one.

There is a possibility now to create UCLASS with the default constructor (i.e. no PCIP).

New macro is encouraged by standard classes and in-editor wizards templates.

#codereview Robert.Manuszewski

[CL 2325282 by Jaroslaw Palczynski in Main branch]
2014-10-10 04:34:56 -04:00
Mike Fricker
52ff9982be Fixed UHT failing to compile on Windows when PCHs are disabled
- This was caused because of how MSVC resolves include paths (Class.h was ambiguous)

[CL 2258158 by Mike Fricker in Main branch]
2014-08-15 16:12:22 -04:00
Max Preussner
3aece47882 Docs: Removed file comments and added missing code documentation
Please note that file comments had no purpose in nearly all cases and just added visual clutter. The two files that had meaningful file comments had their comments moved into the corresponding classes. There are still hundreds of file comments left in other files that will be removed over time.

Also cleaned up some random stuff along the way:
- relative paths to public headers within the same module are no longer necessary (automatically discovered by UBT now)
- header guards are deprecated, use #pragma once instead (all compilers support it now)
- space between multiple template brackets is no longer required (all compilers support >> now)
- NULL to nullptr, OVERRIDE to override
- spelling errors, whitespace, line breaks

[CL 2104067 by Max Preussner in Main branch]
2014-06-12 23:22:18 -04:00
Steve Robb
864bd3d8da WIP refactors
#ttp 331467: Make UHT not depend on CoreUObject

#change GScriptHelper made an object instead of a heap-allocated pointer.
#change NameLookupCPP made an object instead of a heap-allocated pointer.
#add FClasses::FindAnyClass added.
#change FClasses construction moved earlier.
#change FClass::GetInnerClass added.
#change More UClasses changed to FClasses.

#codereview robert.manuszewski

[CL 2091696 by Steve Robb in Main branch]
2014-06-02 07:02:29 -04:00
Steve Robb
d3d90eafb4 #ttp 333737: UHT should not output anything differently for Rocket - resubmitted after CL# 2068336 was backed out due to UAT rebuild problems.
#change Root module path added to include paths.
#change Plugins now write intermediates to the project folder.
#change All generated #includes are now relative.
#change Updated UHTDebugging.manifest to new format.
#change Android response files now use relative include paths to prevent overly-large response files.
#remove Rocket-specific UHT execution removed.
#remove iOS header hack removed.

#codereview robert.manuszewski,ben.marsh

[CL 2077472 by Steve Robb in Main branch]
2014-05-19 06:57:00 -04:00
Steve Robb
ddad01ad2f Back out changelist 2073005
[CL 2073795 by Steve Robb in Main branch]
2014-05-14 23:07:26 -04:00
Steve Robb
cd8b6a99d2 #ttp 333737: UHT should not output anything differently for Rocket - resubmitted after CL# 2068336 was backed out due to UAT rebuild problems.
#change Root module path added to include paths.
#change Plugins now write intermediates to the project folder.
#change All generated #includes are now relative.
#change Updated UHTDebugging.manifest to new format.
#remove Rocket-specific UHT execution removed.
#remove Some bHackHeaderGenerator usage removed.
#remove iOS header hack removed.

#codereview robert.manuszewski,ben.marsh

[CL 2073005 by Steve Robb in Main branch]
2014-05-14 14:50:21 -04:00
Steve Robb
2a0aca7a62 Back out changelist 2068336
[CL 2068514 by Steve Robb in Main branch]
2014-05-09 15:12:56 -04:00
Steve Robb
1478c2cdc7 #ttp 333737: UHT should not output anything differently for Rocket
#change Root module path added to include paths.
#change Plugins now write intermediates to the project folder.
#change All generated #includes are now relative.
#change Updated UHTDebugging.manifest to new format.
#remove Rocket-specific UHT execution removed.
#remove Some bHackHeaderGenerator usage removed.
#remove iOS header hack removed.

#codereview robert.manuszewski,ben.marsh

[CL 2068336 by Steve Robb in Main branch]
2014-05-09 13:02:49 -04:00
Mikolaj Sieluzycki
57df0c45a0 Remove HeaderGroup support from UHT.
[CL 2057577 by Mikolaj Sieluzycki in Main branch]
2014-04-28 05:03:10 -04:00