Commit Graph

385 Commits

Author SHA1 Message Date
Tim Smith
8480a2d1a1 CoreNet.h will now be automatically included when needed.
#rb self
#jira UE-160243
#preflight 62fcee9787319bacfb0bc705

[CL 21424404 by Tim Smith in ue5-main branch]
2022-08-17 09:50:12 -04:00
bryan sefcik
751e38e8c8 Updated to use FUnrealFunctionDefinitionInfo instead of FUnrealStructDefinitionInfo.
#JIRA

#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21394592 via CL 21396515 via CL 21396869
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v975-21357124)

[CL 21399908 by bryan sefcik in ue5-main branch]
2022-08-15 21:51:42 -04:00
bryan sefcik
23a1f3d430 Fixed Linux compile issue.
#JIRA

#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21393745 via CL 21396338 via CL 21396841
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v975-21357124)

[CL 21399892 by bryan sefcik in ue5-main branch]
2022-08-15 21:51:03 -04:00
bryan sefcik
55ded5e984 Fixed an issue where the generated cpp files weren't including all the needed headers. It relied on the original header that generated the cpp to include all the headers which is a problem because the header could forward declare the types.
#JIRA
#preflight 62fa903bae3edb54c9a08b6e

#ROBOMERGE-OWNER: bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21392760 via CL 21396083 via CL 21396090
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v975-21357124)

[CL 21399837 by bryan sefcik in ue5-main branch]
2022-08-15 21:49:10 -04:00
Tim Smith
85b6fe8042 Fixed comment to read TEnumAsByte instead of TByteAsEnum
#rb self
#rnx
#preflight 62f16916b2073af17a47ec87

[CL 21274785 by Tim Smith in ue5-main branch]
2022-08-08 16:20:35 -04:00
Tim Smith
6ca5aa1449 Temporary work around to having TEnumAsBytes passed into property Setter function when it expects the actual enum value.
#rb Daren.Cheng, Patrick.Boutot
#jira FORT-493770
#rnx
#robomerge FNMain
#preflight 62d99972c0180d8071489e9b

[CL 21205364 by Tim Smith in ue5-main branch]
2022-07-21 14:36:13 -04:00
bryan sefcik
e73e4b4d67 Updated UHT to output all the circular dependencies before exiting.
#jira

#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21195860 via CL 21195874 via CL 21195883
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21196949 by bryan sefcik in ue5-main branch]
2022-07-20 21:52:44 -04:00
Peter Engstrom
4aae8d3ed0 Iris experimental replication system.
Initial submit, compiled out by default.

#rb Peter.Engstrom,Mattias.Hornlund,Brian.Bekich,Ryan.Gerleve,John.Barrett
#jira UE-158381
#preflight /62cd6fc7ad490b52da0515a3

[CL 21068370 by Peter Engstrom in ue5-main branch]
2022-07-13 03:11:55 -04:00
Tim Smith
1f11b428c6 1) Fixed issue where UPARAM wasn't getting parsed as part of a template argument property type
2) Refactored how property specifiers are parsed due to above issue
3) Fixed issue where UClass derived types were not outputting correctly in event parameter lists
4) Added more diagnostic output to package files.

#rb self
#rnx
#robomerge emt
#preflight 62b5b9c548183a59a576eaf8

[CL 20808450 by Tim Smith in ue5-main branch]
2022-06-24 09:27:13 -04:00
robert manuszewski
d1443992e1 Deprecating ANY_PACKAGE.
This change consists of multiple changes:

Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used  in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values

AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes

Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names

#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32

#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
George Rolfe
1733b33a3f Added TIsUEnumClass trait with UHT integration
#jira none
#rb tim.smith
#rb steve.robb
#preflight 6290bb1c1f0041249bec1f57

[CL 20391947 by George Rolfe in ue5-main branch]
2022-05-27 08:28:20 -04:00
daren cheng
e9549e929b Modify MVVM code generation to include module _API declarations.
By Patrick.Boutot.

#jira UE-149304
#preflight 627ec564d302e2cec852e3b5
#rb Daren.Cheng
[FYI] Patrick.Boutot

#ROBOMERGE-OWNER: daren.cheng
#ROBOMERGE-AUTHOR: daren.cheng
#ROBOMERGE-SOURCE: CL 20192647 via CL 20193234 via CL 20193246 via CL 20193249
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20193488 by daren cheng in ue5-main branch]
2022-05-14 00:09:48 -04:00
Marc Audy
2a6c695a32 Fix UHT static analysis warnings
#codereview Tim.Smith
#rnx
#preflight

[CL 20034484 by Marc Audy in ue5-main branch]
2022-05-03 19:02:58 -04:00
robert manuszewski
7d16318fbc Much cleaner way of copying arrays for static array getters
#preflight 62434779637925b5d3aac01b
#rb Steve.Robb

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19546962 via CL 19548071 via CL 19548432 via CL 19548533
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19560903 by robert manuszewski in ue5-main branch]
2022-03-30 14:17:23 -04:00
Devin Doucette
292008ea35 Logging: Replaced GLog->PanicFlush() with GLog->Panic()
Panic allows only one thread to become the panic thread. In panic mode, logs are only sent to panic-safe output devices. Each call to Panic flushes buffered logs to panic-safe output devices, and flushes panic-safe output devices.

#jira UE-147152
#preflight 62424814292f228e09d8a612
#rb Zousar.Shaker
#fyi Brandon.Schaefer

[CL 19545093 by Devin Doucette in ue5-main branch]
2022-03-29 13:31:48 -04:00
robert manuszewski
64305a4b12 Fixing static array properties with setters and getters not generating correct wrapper code
#rb Tim.Smith
#preflight 624307e5c51908059a979885

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19541948 via CL 19543263 via CL 19543382 via CL 19543410
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19544439 by robert manuszewski in ue5-main branch]
2022-03-29 12:56:22 -04:00
Helge Mathee
b25ed0b41f UnrealHeaderTool: Pass public rigvm context as const
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/6242e392df7d23dbfee885be

[CL 19540232 by Helge Mathee in ue5-main branch]
2022-03-29 06:53:29 -04:00
Helge Mathee
0f8ad1961b RigVM: Add introspection on function arguments
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/623b474288538cd45e13f706

[CL 19524405 by Helge Mathee in ue5-main branch]
2022-03-28 03:57:53 -04:00
halfdan ingvarsson
3bedaa8ad2 Control Rig: Remove access to private arguments of RigVMExecuteContext from RigVMUnits
#jira UE-145726
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/622f6b38223365469e3aad16

#ROBOMERGE-OWNER: halfdan.ingvarsson
#ROBOMERGE-AUTHOR: sara.schvartzman
#ROBOMERGE-SOURCE: CL 19383990 via CL 19384158 via CL 19385686 via CL 19397234 via CL 19397255
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19403001 by halfdan ingvarsson in ue5-main branch]
2022-03-16 03:25:47 -04:00
Patrick Boutot
1e4c3973db UHT: Add FieldNotify specifier to UHT. It auto generate the UE_FIELD_NOTIFICATION_DECLARE_CLASS_DESCRIPTOR and UE_FIELD_NOTIFICATION_IMPLEMENT_CLASS_DESCRIPTOR macro. FieldNotify is only available on FProperty and UFunction member of a UCLass and if the UClass implement the INotifyFieldValueChanged interface.
#preflight 622f43d419287beb2c316755

[CL 19372159 by Patrick Boutot in ue5-main branch]
2022-03-14 09:47:28 -04:00
Tim Smith
3044817c8b Deprecate CLASS_NoExport. It was only being used by UHT.
#rb trivial
#rnx
#jira UE-117144
#preflight 622f32e80a342dea04e2face

[CL 19371725 by Tim Smith in ue5-main branch]
2022-03-14 08:36:12 -04:00
Tim Smith
037175a783 Add internal use command line options to UHT. One to enable debugger code generation outout and one to disable the concurrent processing.
#rnx
#rb trivial
#preflight 622227d0945d64b4ec3bb0d5

[CL 19265968 by Tim Smith in ue5-main branch]
2022-03-04 09:57:14 -05:00
marc audy
cff01aa9fa Added support for native FProperty setters and getters.
Setters and getters are native functions called by FProperties when setting property values with *_InContainer functions.
Setters and getter function names can be manually specified with Setter = Func and Getter = Func keywords inside of UPROEPRTY macro but they will also be automatically parsed if the name is not explicitly specified if the setter or getter function name matches SetPropertyName and GetPropertyName pattern.
The latter behavior can be disabled in UHT's DefaultEngine.ini by setting AutomaticSettersAndGetters=False.
ImportText and ExportTextItem functions have been deprecated and should be replaced with *_InContainer or *_Direct variants.

#rb Steve.Robb
#preflight 6210a377a83e0bcefd03d9e1

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19070318 via CL 19098059 via CL 19104650 via CL 19104661 via CL 19110012
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19147839 by marc audy in ue5-main branch]
2022-02-25 10:39:39 -05:00
Tim Smith
cc7bf85f5d 1) Minor updates to code generation to make the checksums a bit more stable
2) Added new struct and class specifiers to account for settings being extracted from the engine code.
3) UHT no longer depends on pre-existing classes in the engine but will use them when it needs to create the engine instances of the classes.

#rb joe.kirchoff, janathan.adamczewski
#rnx
#preflight 620fa0316c6c638c07ddca93

[CL 19049306 by Tim Smith in ue5-main branch]
2022-02-18 08:54:19 -05:00
andriy tylychko
406e5db988 UnrealHeaderTool: emptying early a global array that stores tasks as their allocator can be already destroyed when the array gets statically destructed
#rb trivial
#preflight trivial

#ROBOMERGE-AUTHOR: andriy.tylychko
#ROBOMERGE-SOURCE: CL 19015114 via CL 19015207 via CL 19015211 via CL 19015220 via CL 19015238 via CL 19031915
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v917-18934589)

[CL 19032142 by andriy tylychko in ue5-main branch]
2022-02-17 03:41:01 -05:00