How does 'DevelopmentEditor' affect the #IF_WITH_EDITOR code guard?

Hey guys,

I’m attempting to extend the landscape classes (ALandscape for now) and I’ve run into something rather puzzling. When trying to build my project when in ‘DevelopmentEditor’ mode, it leads to a bunch of linker errors, and rather coincidentally only with functions that have their bodies wrapped with the #IF_WITH_EDITOR preprocesser directive.

Whenever I switch my build configuration to ‘Development’ these linker errors go away.

And thus I am left with a very confusing situation where the build configuration that logically SHOULD have #IF_WITH_EDITOR defined (cause it has Editor in the name), apparently not doing so.

I am ripe for an explanation. Would appreciate any clarification on this.


Answering my own question,

I found out that the code guard #IF_WITH_EDITOR" is used by the Epic staff to strip out all the implementation information that is associated with certain editor classes in order to speed up build times.

This is what was leading to my linker errors.

Still not certain why switching to ‘Development’ fixed these errors, but I’m guessing its because that macro is undefined in that particular build config.