Using UE core structs and classes in a static .lib?
Preamble: up until now, my plugin has been distributed as compiled dlls. However, Epic specifically wants everything that contains a call to the engine to be released in source code for the marketplace. Some of the code contains some proprietary stuff that isn't mine that I cannot release, so I'm going to have to split that part off into a static .lib (or dll, I guess) that can be linked in at compile time on other systems.
The problem is that basically all the code was ported to use UE base types (FVector, TArray, etc) everywhere and was deeply integrated. It would suck having to switch everything back to use other types and do on the fly conversions from pretty much equal types (there's only so many ways you can store a 3D vector, for example) when passing data to the UE engine-using code, so my question is: how easy/impossible would it be to keep using the UE Core structs and classes in a static .lib?
Note: I am not asking how to include a static library, I'm asking if I can specifically keep the code mostly as is while having it in a .lib, somehow, and how... or if I'm going to have to spend forever re-working it all back.
You can have static libs as part of your plugin. However, you need to provide the lib for every build configuration for every platform you support because a user can build any of those.
This is problematic due to licensees/users of the engine can make changes to the those types and then you will not be compatible with those changes unless you provide source that they can build against. I am not saying you are required to provide all source, as that is definitely not the goal. The goal is to make sure the user of the engine that is using your plugin can do so without having to get custom support from you if they need to build their project after making engine changes.
answered May 10 '16 at 05:38 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here