Well, from my experience it seems the build system won’t work like that. It seems, you have to tell the build system to build editor module or not. I can see this in my build/package logs.
Although, it seems bBuildEditor does not have any effects for me. I used to do this on 4.18 and it worked perfectly:
if (Target.Type == TargetRules.TargetType.Editor) { ExtraModuleNames.AddRange( new string] { "MyProjectEditor" }); }
Now if I do this (on both 4.18 and 4.19):
if (this.bBuildEditor) {
this.ExtraModuleNames.AddRange(
new string] {
"MyProjectEditor"
});
}
It builds fine but, when I try to package my game I’ll get the following errors:
UATHelper: Packaging (Linux): In file included from /mnt/dev/Reminiscence/Intermediate/Build/Linux/B4D820EA/Reminiscence/Development/BlueprintGraph/Module.BlueprintGraph.1_of_5.cpp:3:
UATHelper: Packaging (Linux): In file included from /opt/UnrealEngine/Engine/Source/Editor/BlueprintGraph/Private/BlueprintActionDatabase.cpp:25:
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/EdGraphSchema_K2.h:465:16: error: 'GetPinDisplayName' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): virtual FText GetPinDisplayName(const UEdGraphPin* Pin) const override;
UATHelper: Packaging (Linux): ^
PackagingResults: Error: 'GetPinDisplayName' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): In file included from /mnt/dev/Reminiscence/Intermediate/Build/Linux/B4D820EA/Reminiscence/Development/BlueprintGraph/Module.BlueprintGraph.1_of_5.cpp:3:
UATHelper: Packaging (Linux): In file included from /opt/UnrealEngine/Engine/Source/Editor/BlueprintGraph/Private/BlueprintActionDatabase.cpp:26:
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:180:34: error: 'ReconstructNode' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual void ReconstructNode() override;
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:181:42: error: 'GetNodeTitleColor' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual FLinearColor GetNodeTitleColor() const override;
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:182:34: error: 'AutowireNewNode' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual void AutowireNewNode(UEdGraphPin* FromPin) override;
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:183:69: error: only virtual member functions can be marked 'override'
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API void PinConnectionListChanged(UEdGraphPin* Pin) override;
UATHelper: Packaging (Linux): ^~~~~~~~
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:184:38: error: 'GetJumpTargetForDoubleClick' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual UObject* GetJumpTargetForDoubleClick() const override;
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:185:34: error: 'CanJumpToDefinition' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual bool CanJumpToDefinition() const override;
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:186:34: error: 'JumpToDefinition' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual void JumpToDefinition() const override;
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:187:37: error: 'GetDocumentationLink' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual FString GetDocumentationLink() const override;
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:188:34: error: 'GetPinHoverText' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual void GetPinHoverText(const UEdGraphPin& Pin, FString& HoverTextOut) const override;
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:189:34: error: 'ShowPaletteIconOnNode' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual bool ShowPaletteIconOnNode() const override { return true; }
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:190:34: error: 'CanSplitPin' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual bool CanSplitPin(const UEdGraphPin* Pin) const override;
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:191:42: error: 'GetPassThroughPin' marked 'override' but does not override any member functions
PackagingResults: Error: 'ReconstructNode' marked 'override' but does not override any member functions
PackagingResults: Error: 'GetNodeTitleColor' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual UEdGraphPin* GetPassThroughPin(const UEdGraphPin* FromPin) const override;
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:193:34: error: 'ValidateNodeDuringCompilation' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual void ValidateNodeDuringCompilation(class FCompilerResultsLog& MessageLog) const override;
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:194:37: error: 'GetPinMetaData' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual FString GetPinMetaData(FName InPinName, FName InKey) override;
UATHelper: Packaging (Linux): ^
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:306:34: error: 'CanCreateUnderSpecifiedSchema' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): BLUEPRINTGRAPH_API virtual bool CanCreateUnderSpecifiedSchema(const UEdGraphSchema* DesiredSchema) const override;
UATHelper: Packaging (Linux): ^
PackagingResults: Error: 'AutowireNewNode' marked 'override' but does not override any member functions
PackagingResults: Error: only virtual member functions can be marked 'override'
PackagingResults: Error: 'GetJumpTargetForDoubleClick' marked 'override' but does not override any member functions
PackagingResults: Error: 'CanJumpToDefinition' marked 'override' but does not override any member functions
PackagingResults: Error: 'JumpToDefinition' marked 'override' but does not override any member functions
PackagingResults: Error: 'GetDocumentationLink' marked 'override' but does not override any member functions
PackagingResults: Error: 'GetPinHoverText' marked 'override' but does not override any member functions
PackagingResults: Error: 'ShowPaletteIconOnNode' marked 'override' but does not override any member functions
PackagingResults: Error: 'CanSplitPin' marked 'override' but does not override any member functions
PackagingResults: Error: 'GetPassThroughPin' marked 'override' but does not override any member functions
PackagingResults: Error: 'ValidateNodeDuringCompilation' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/K2Node.h:231:53: error: use of undeclared identifier 'GetNodeTitle'
UATHelper: Packaging (Linux): virtual FText GetCompactNodeTitle() const { return GetNodeTitle(ENodeTitleType::FullTitle); }
UATHelper: Packaging (Linux): ^
PackagingResults: Error: 'GetPinMetaData' marked 'override' but does not override any member functions
PackagingResults: Error: 'CanCreateUnderSpecifiedSchema' marked 'override' but does not override any member functions
PackagingResults: Error: use of undeclared identifier 'GetNodeTitle'
UATHelper: Packaging (Linux): In file included from /mnt/dev/Reminiscence/Intermediate/Build/Linux/B4D820EA/Reminiscence/Development/BlueprintGraph/Module.BlueprintGraph.1_of_5.cpp:3:
UATHelper: Packaging (Linux): In file included from /opt/UnrealEngine/Engine/Source/Editor/BlueprintGraph/Private/BlueprintActionDatabase.cpp:27:
UATHelper: Packaging (Linux): In file included from Editor/BlueprintGraph/Classes/K2Node_Event.h:11:
UATHelper: Packaging (Linux): Runtime/Engine/Public/EdGraph/EdGraphNodeUtils.h:31:65: error: no member named 'GetGraph' in 'UEdGraphNode'
UATHelper: Packaging (Linux): return CachedText.IsEmpty() || (InOwningNode && InOwningNode->GetGraph() && InOwningNode->GetSchema()->IsCacheVisualizationOutOfDate(CacheRefreshID));
UATHelper: Packaging (Linux): ~~~~~~~~~~~~ ^
UATHelper: Packaging (Linux): Runtime/Engine/Public/EdGraph/EdGraphNodeUtils.h:31:93: error: no member named 'GetSchema' in 'UEdGraphNode'
UATHelper: Packaging (Linux): return CachedText.IsEmpty() || (InOwningNode && InOwningNode->GetGraph() && InOwningNode->GetSchema()->IsCacheVisualizationOutOfDate(CacheRefreshID));
UATHelper: Packaging (Linux): ~~~~~~~~~~~~ ^
UATHelper: Packaging (Linux): fatal error: too many errors emitted, stopping now -ferror-limit=]
PackagingResults: Error: no member named 'GetGraph' in 'UEdGraphNode'
PackagingResults: Error: no member named 'GetSchema' in 'UEdGraphNode'
PackagingResults: Error: too many errors emitted, stopping now -ferror-limit=]
UATHelper: Packaging (Linux): In file included from /mnt/dev/Reminiscence/Intermediate/Build/Linux/B4D820EA/Reminiscence/Development/BlueprintGraph/Module.BlueprintGraph.2_of_5.cpp:2:
UATHelper: Packaging (Linux): In file included from /opt/UnrealEngine/Engine/Source/Editor/BlueprintGraph/Private/EdGraphSchema_K2_Actions.cpp:7:
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/EdGraphSchema_K2.h:465:16: error: 'GetPinDisplayName' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): virtual FText GetPinDisplayName(const UEdGraphPin* Pin) const override;
UATHelper: Packaging (Linux): ^
PackagingResults: Error: 'GetPinDisplayName' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): In file included from /mnt/dev/Reminiscence/Intermediate/Build/Linux/B4D820EA/Reminiscence/Development/AnimGraph/Module.AnimGraph.cpp:2:
UATHelper: Packaging (Linux): In file included from /opt/UnrealEngine/Engine/Source/Editor/AnimGraph/Private/AnimationConduitGraphSchema.cpp:3:
UATHelper: Packaging (Linux): In file included from Editor/AnimGraph/Classes/AnimationConduitGraphSchema.h:7:
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/EdGraphSchema_K2.h:465:16: error: 'GetPinDisplayName' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): virtual FText GetPinDisplayName(const UEdGraphPin* Pin) const override;
UATHelper: Packaging (Linux): ^
PackagingResults: Error: 'GetPinDisplayName' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): In file included from /mnt/dev/Reminiscence/Intermediate/Build/Linux/B4D820EA/Reminiscence/Development/AnimGraph/Module.AnimGraph.gen.cpp:2:
UATHelper: Packaging (Linux): In file included from /mnt/dev/Reminiscence/Intermediate/Build/Linux/B4D820EA/Reminiscence/Inc/AnimGraph/AnimationConduitGraphSchema.gen.cpp:8:
UATHelper: Packaging (Linux): In file included from Editor/AnimGraph/Classes/AnimationConduitGraphSchema.h:7:
UATHelper: Packaging (Linux): Editor/BlueprintGraph/Classes/EdGraphSchema_K2.h:465:16: error: 'GetPinDisplayName' marked 'override' but does not override any member functions
UATHelper: Packaging (Linux): virtual FText GetPinDisplayName(const UEdGraphPin* Pin) const override;
UATHelper: Packaging (Linux): ^
PackagingResults: Error: 'GetPinDisplayName' marked 'override' but does not override any member functions
.
.
.
And many more errors like that. Those methods should exist on editor builds. Even on Visual Studio I’ll get those errors, too. If I do just this:
this.ExtraModuleNames.AddRange(
new string] {
"MyProjectEditor"
});
I won’t get those errors. But it packages the editor module inside my packaged game which obviously is not necessary.