Is that true? My understanding is that so long as you clearly segregate GPL and non-GPL code by using wrapper classes and linking (rather than copypasta), the core application can remain non-GPL.
Sort of. If you license your main source code under, say, the MIT license, you can distribute that source code, and any object code compiled from it, under the terms of the MIT license.
However, once you distribute a binary containing that source code and some GPLed source code linked together, you have to distribute all that source code (including any other libraries) under GPL-compatible licenses, such that the user can compile and distribute the application themselves.
The LGPL allows you to keep your main source code closed-source while using an LGPLed shared library, so long as a user can replace the shared library with their own version.
Comments
Sort of. If you license your main source code under, say, the MIT license, you can distribute that source code, and any object code compiled from it, under the terms of the MIT license.
However, once you distribute a binary containing that source code and some GPLed source code linked together, you have to distribute all that source code (including any other libraries) under GPL-compatible licenses, such that the user can compile and distribute the application themselves.
The LGPL allows you to keep your main source code closed-source while using an LGPLed shared library, so long as a user can replace the shared library with their own version.