This week I upgraded my main development PC and after a fresh reinstall of the OS I decided to do some spring cleaning.
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.
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.