Metric Panda Games

One pixel at a time.

Code Cleanup

Rival Fortress Update #28

This week I upgraded my main development PC and after a fresh reinstall of the OS I decided to do some spring cleaning.

Codebase cleanup

Since I recently upgraded Clang from 3.7 to 3.8, I tried compiling Rival Fortress with -Weverything enabled to see if they introduced new useful warnings.

Many of the diagnostic warnings that are enabled with -Weverything not really useful, but I find that it’s still a useful flag to enable every once in a while, especially after upgrading compiler version.

Toolchain cleanup

I finally abandoned GCC and MSVC in favor of Clang for all platforms as a frontend compiler. Previously I was using GCC when cross-compiling on Linux and Mac, and MSVC on Windows, but keeping compiler flags in sync was becoming too error prone. I now use Clang as frontend and LLVM or GNU binutils as linker/assemblers.

As a sweet side-effect, the project’s CMake scripts are much simpler too, with a lot less branching and compiler special casing.

Army knife cleanup

I also did some cleanup on the shell script that I use for various project tasks. I’ve simplified it quite a bit, removing the compiler switching as well as code paths that I don’t use anymore.

I hope that when Windows 10’s Bash support finally arrives I’ll be able to drop Cygwin and use the script “natively” on Windows too.