I was migrating from UE4.7 to 4.8 and I found out a change in behavior for which I
would like to know more. I am developing an engine plugin which has to
be distributed as source and binaries. The purpose of the binary distribution is
to allow clients with pre-compiled (Installed) UE4 to use the plugin. The
process of pre-compiling the plugin binaries is, to put it mildly, rigid. In
order to have the binaries compatible with the Installed engine you have to:
- Move the engine plugin to a sample project (change it to a game plugin)
- Compile the game plugin with the Installed version of UE4
- Move back the plugin to the engine
Now to make it even more “fun” you have to do this for every build configuration
that is available.
For versions prior 4.8 we used this command to build only the plugin, not the
UnrealBuildTool.exe ProjectName Win32 Shipping ProjectName.uproject -noxge
-rocket -module PluginName
What it used to do was to compile only the plugin files into a binary. In 4.8
the same command now it tries to link with the whole game
(GameName-Win32-Shipping.exe) and fails miserably, due to missing external
symbols from the engine itself. If I try to build(package) the project from the
editor everything works because the whole game is compiled. Now this leaves me with
- Compile the whole project and package it six times (the number of available
configurations) multiplied by number of supported platforms.
- Drop the support for the Pre-compiled UE4.