Code::Blocks for Pioneer

Today I’m preparing a Code::Blocks project for Pioneer.

We’re about to start allowing C++11 stuff into the codebase, which means that Visual Studio 2008 and 2010 are now going to be pretty much unusable. And while Pioneer builds just fine with 2012 and 2013, and free versions of both exist, neither of them work on Windows XP.

Now I don’t personally care about XP users, nor about people using a compiler four releases old. But it is a bit sucky that the only practical way to build your own Pioneer for Windows is to use a Microsoft compiler (the method I use to build the releases isn’t really viable for most people).

So by having a Code::Blocks project, we give people a free compiler option that works back to XP. Having GCC under the hood gives us better cross-platform compatibility. Its something we can support.

But holy crap, I do not know how people get any work done on Windows. Setting up all these little projects is a tedious tour through a bunch of dialogs, while on Linux I’d just script it. And yeah, I know there’s ways to script things on Windows, but its not an environment that really encourages that.

Only got to do it once though :)

It is almost working. Everything compiles, though I had to make a small hack because the GCC that comes with Code::Blocks doesn’t seem to have fpcontrol. Still have to work that out, but otherwise we’re there.

On the linking, I had to build a libsigc++, and I will have to build (at least) a libpng as well, haven’t done that yet. But I seem to have a link ordering problem; libgalaxy can’t find LuaFixed in libcore for reasons that escape me. And there’s some Assimp internal symbols that aren’t appearing, I suspect I may have to build that too, which will mean getting pioneer-thirdparty buildable as well, I think.

And lastly, I haven’t figured out how to link the “system” opengl32. I can add the path explicitly, but then I get “C:\Program Files (x86)...whatever” in the project, which is a bit too absolute.

So as usual, that last 5% is a shit :)

All in robn/codeblocks on pioneer and pioneer-thirdparty if anyone wants to have a go. It’ll probably be another few days before I get a chance to try again.