#if WITH_EDITOR only removing code from .h, not .cpp

Using #if WITH_EDITOR I have declared a property, that when packaged without the editor, correctly removes itself from the code. However references to that property (also wrapped in #if WITH_EDITOR) get packaged anyway; resulting in compile errors.

Here is the code:



	UPROPERTY(EditAnywhere, Category = "Debug")
	bool DrawDebug = false;




		if (DrawDebug)
			UE_LOG(LogTemp, Warning, TEXT("Why is this being packaged?"));


Compile error:

error C2039: 'DrawDebug': is not a member of 'UBTTask_SetOptimalCoverPose'


WITH_EDITOR doesn’t work with UPROPERTIES/UFUNCTIONS at all (probably same goes for UCLASSes but I haven’t tried that). If you want to compile out a UPROPERTY, you can use WITH_EDITORONLY_DATA instead.


Thank you!

WITH_EDITOR appears to work for overriden UFUNCTIONs, like PostEditProperties, but swapping to WITH_EDITORONLY_DATA for everything else has fixed my build errors.