Unknown specifier 'HandoverData' found while parsing Variable specifier [UnrealHeaderTool Error]
I've added my custom property specifier to the UE5. Everything compiles and the new specifier is recognized/
But R++ complains that it cannot parse it.
Could you point me out what is wrong and what should I do in order to fix that?
Below are the files I modified:
VariableSpecifiers.def: VARIABLE_SPECIFIER(HandoverData)
HeaderParser.cpp:
if (VariableCategory == EVariableCategory::Member)
{
switch (SpecID)
{
....
case EVariableSpecifier::HandoverData:
{
Flags |= CPF_HandoverData;
}break;
.....
ObjectMacros.h:
namespace UP
{
// valid keywords for the UPROPERTY macro
enum
{
...
HandoverData
};
}
Please sign in to leave a comment.
Thanks a lot!
That information helped.
The property must have been added to \UnrealEngine\Engine\Source\Programs\Shared\EpicGames.Core\UnrealEngineTypes.cs
Hello,
It looks like some weird bug because `[UnrealHeaderTool Error]` errors come from the UnrealHeaderTool itself, which ReSharper runs in the background.
May I ask you:
1. JetBrains ReSharper 2023.1.4 Build 231.0.20230713.104041 built on 2023-07-13 ReSharper C++ 2023.1.20230713.111344
1.1 UE 5.1
2. I built UnrealHeaderTool in Shipping and Development
May you advise what ReSharper uses as an output of UnrealHeaderTool? Does it read a log file? Or use a special UnrealHeaderTool API that I can investigate?
Thanks!
UnrealHeaderTool has been migrated from C++ program to C# UnrealBuildTool mode in Unreal Engine 5.1. And ReSharper (2023.1 and newer) supports it and launches it like that: "dotnet.exe UnrealBuildTool.dll -Mode=UnrealHeaderTool ProjectFile.uproject ManifestName.uhtmanifest". After that, it simply reads and parses stdout.
I would suggest checking if "\\UnrealEngine\Engine\Binaries\DotNET\UnrealBuildTool\EpicGames.UHT.dll" has been updated (copied over) after building UnrealHeaderTool.