Use abstraction instead of using SDL dependencies.
Come up with our own logging system.
Tidy up CMake. Also provide abstraction to fopen_s only available to Windows.
Remove symlinks and make codebase use common modules instead.