Commit Graph

764 Commits

Author SHA1 Message Date
steve robb
288f3de432 Fixes for the implicit conversion of ints and chars to TCHARs in UTF-8 mode.
#rb trivial
#preflight 621ed0b4e15c51d8c5e5d081

#ROBOMERGE-OWNER: steve.robb
#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 19219816 via CL 19220283 via CL 19220288 via CL 19223679
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19227684 by steve robb in ue5-main branch]
2022-03-02 15:30:50 -05:00
robert manuszewski
e33b9b80b0 It's no longer required to provide an explicit setter or getter name if Setter or Getter tag are present in UPROPERTY macro. If no accessor function name is specified it will be autogenerated.
#rb Steve.Robb
#preflight 6216795ec152c67496dd3acf

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19170586 via CL 19170837 via CL 19170842 via CL 19170845 via CL 19170992
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19171072 by robert manuszewski in ue5-main branch]
2022-02-28 02:40:02 -05:00
robert manuszewski
8a0a1ff00e Changes that somehow got lost when shelving and unshelving property setter and getter changes across streams + a few fixes
#rb Steve.Robb
#preflight 621515f40f71e491ccc7d14b

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19075982 via CL 19098326 via CL 19104715 via CL 19104912 via CL 19110027
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19147883 by robert manuszewski in ue5-main branch]
2022-02-25 10:41:34 -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
Helge Mathee
25659c95a1 RigVM: Remove use of UE_RIGVM_UCLASS_BASED_STORAGE_DISABLED define
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/6206623a963efc0c28d83c37

[CL 18951321 by Helge Mathee in ue5-main branch]
2022-02-11 08:48:47 -05:00
jack cai
94ab4283b8 Control Rig: Added BlueprintInternalUseOnlyHierarchical tag that can be inherited by derived structs. Addded this tag to base rig unit to hide all raw rig unit structs from BP
previous change at CL 18866227 was backed out because it broke the bot1 cooks: https://horde.devtools.epicgames.com/log/61ffcf94676584e71ea0ab7e?lineindex=104697

Basically GetBoolMetaDataHierarchical returns the wrong thing and the return pin can no longer be broken up and so the blueprint won't compile.

#jira UE-141083
#rb helge.mathee sara.schvartzman ben.hoffman
#preflight https://horde.devtools.epicgames.com/job/62018bbd62420bfd0493e404

#ROBOMERGE-AUTHOR: jack.cai
#ROBOMERGE-SOURCE: CL 18907822 via CL 18907834 via CL 18907851 via CL 18918946 via CL 18919865
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v916-18915374)

[CL 18919918 by jack cai in ue5-main branch]
2022-02-09 12:15:30 -05:00
Tim Smith
007a4b4420 UHT will now warn the user if any form of GENERATED_BODY is used in code being skipped.
#rb jonathan.adamczewski
#preflight 62028f977e40979d33b0dc48

[CL 18902909 by Tim Smith in ue5-main branch]
2022-02-08 11:08:20 -05:00
Richard TalbotWatkin
33a1078f29 Fixed UHT code generation issue which was accidentally transposing the ClassDef and MetaClassDef for TObjectPtr<UClass> properties.
#rb Robert.Manuszewski
#preflight 62028f8dae203853a856e15b

[CL 18902731 by Richard TalbotWatkin in ue5-main branch]
2022-02-08 10:57:14 -05:00
Andrew Davidson
4a3e582384 LWC: Remove UE_LARGE_WORLD_COORDINATES_DISABLED toggle
#rb stephen.holmes
[FYI] zak.middleton
#preflight 61f7d18b114ec25fe09648d6

#ROBOMERGE-OWNER: Andrew.Davidson
#ROBOMERGE-AUTHOR: andrew.davidson
#ROBOMERGE-SOURCE: CL 18788533 in //UE5/Release-5.0/... via CL 18788583 via CL 18788850
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)
#ROBOMERGE-CONFLICT from-shelf
#preflight 61f7eb7a114ec25fe0990f8c

[CL 18789644 by Andrew Davidson in ue5-main branch]
2022-01-31 10:10:51 -05:00
Robert Manuszewski
13573e3787 Refactoring compiled-in FProperty constructors so that they have the same signature
#jira SOL-1981
#rb Steve.Robb
#preflight 61dc0bbcaf44b43628348c9b

[CL 18558135 by Robert Manuszewski in ue5-main branch]
2022-01-10 06:22:03 -05:00
jamie dale
d5c1b0098d Avoid creating redundant sparse class data instances in cooked games
The process of cooking would ensure that every BP derived from a C++ base using sparse class data would have its own sparse class data instance, as the serialization function would create an instance on save/load. This could potentially result in a lot of redundant instances that don't override any data from their archetype.

These changes allow the API for accessing sparse class data to optionally fallback to using the archetype data when possible (controlled via the EGetSparseClassDataMethod enum), though any existing code already using GetOrCreateSparseClassData (or the UHT wrapper) will continue to always create a new instance.

BPGC serialization has been updated to only save the sparse class data when it has overridden data from its archetype, and the loading code will now avoid creating the instance when no override data has been saved. This allows new code to take advantage of EGetSparseClassDataMethod by choosing to reference the archetype data instead, and the engine has also been updated to avoid calling GetOrCreateSparseClassData where possible.

Anything that requires a mutable sparse class data instance should still use GetOrCreateSparseClassData (or the UHT wrapper that doesn't take EGetSparseClassDataMethod), as otherwise you may edit data belonging to your archetype (which is why GetSparseClassData returns const data).

#preflight 61b28ecdc01c89f906c4d72f
#rb Fred.Kimberley, Thomas.Sarkanen

#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 18442650 via CL 18443219 via CL 18443223 via CL 18443224 via CL 18444418 via CL 18445355
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18445518 by jamie dale in ue5-release-engine-test branch]
2021-12-13 13:44:37 -05:00
matt breindel
597fddd644 Improved assertion output for FHeaderParser to provide the name of the struct/class being compiled and a possible user error that might have caused the problem (missing a prefix)
[at]*tim.tillotson
#rb tim.smith
#preflight 61b277aedd082817e81d0866

#ROBOMERGE-AUTHOR: matt.breindel
#ROBOMERGE-SOURCE: CL 18426836 via CL 18428164 via CL 18428184 via CL 18428205 via CL 18435149 via CL 18437401
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18437876 by matt breindel in ue5-release-engine-test branch]
2021-12-10 21:22:25 -05:00
tim smith
abf0319d69 If a ShowCategories overrides a parent's HideCategories, the correct list of categories will now be included in the meta data.
#rb trivial
#jira none
#preflight 61a7d0ec800738dbfbab589c

#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 18343712 in //UE5/Release-5.0/... via CL 18343742
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18343777 by tim smith in ue5-release-engine-test branch]
2021-12-01 15:27:22 -05:00
daniel lamb
59b0d62040 Added temporary code to log all files when UHT fails.
Tim.Smith
[FYI] Tim.Smith
#preflight skip

#ROBOMERGE-AUTHOR: daniel.lamb
#ROBOMERGE-SOURCE: CL 18325461 via CL 18326818 via CL 18326973 via CL 18327001 via CL 18328442 via CL 18328531
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18328632 by daniel lamb in ue5-release-engine-test branch]
2021-11-30 14:19:48 -05:00
halfdan ingvarsson
f43a93906e UHT: Remove suppression of a warning that was required for BP nativization (C4883: function size suppresses optimizations)
#rb tim.smith
#jira none
#rnx

#ROBOMERGE-AUTHOR: halfdan.ingvarsson
#ROBOMERGE-SOURCE: CL 18297391 in //UE5/Release-5.0/... via CL 18297394
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18297400 by halfdan ingvarsson in ue5-release-engine-test branch]
2021-11-25 18:14:45 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
aurel cordonnier
a6e741e007 Merge from Release-Engine-Staging @ 17915896 to Release-Engine-Test
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035

[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-25 20:05:28 -04:00
tim smith
74513adf4c Properties that use a TSet with a struct will generate a compile time error if the struct doesn't have a hash value function.
#rb trivial
#jira UE-126918
#preflight 6166b963a8ff590001fc02f4

#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 17798536 in //UE5/Release-5.0/... via CL 17798538
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v881-17767770)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17798540 by tim smith in ue5-release-engine-test branch]
2021-10-13 07:41:49 -04:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
justin hare
4d7e190747 Making it clear (by way of UHT error) that a subclass of a not-placeable class isn't allowed to be declared with the 'placeable' specifier.
#jira UE-120868, UE-98181
#rb tim.smith
#preflight 61644bfa729ae30001a53e94

#ROBOMERGE-OWNER: justin.hare
#ROBOMERGE-AUTHOR: justin.hare
#ROBOMERGE-SOURCE: CL 17773058 in //UE5/Release-5.0/... via CL 17773067
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v881-17767770)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17774503 by justin hare in ue5-release-engine-test branch]
2021-10-11 13:58:55 -04:00
jorgenpt
fc17fcfeba PR #8438: UHT: Fix // & /* not parsing in a quoted string (Contributed by jorgenpt)
#preflight 61573c8ea680bb0001cfe55d

#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 17694384 in //UE5/Release-5.0/... via CL 17694399
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17694405 by jorgenpt in ue5-release-engine-test branch]
2021-10-01 13:53:53 -04:00
tim smith
5e96b745c7 Temporary fix to a long standing UHT issue made worse by the concurrency changes. If an intermediate file in an include chain doesn't contain any U definitions, it will be omited by UBT causing UHT to have gaps in the include file graph. This results in some delegates not being able to be found.
#jira UE-127685
#rb none
#rnx
#preflight 615727027b2a620001714c51

#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 17693354 in //UE5/Release-5.0/... via CL 17693374
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17693384 by tim smith in ue5-release-engine-test branch]
2021-10-01 12:38:40 -04:00