Building with Code::Blocks

From PioneerWiki
Jump to: navigation, search

These are instructions for building Pioneer for Windows using the Code::Blocks IDE, with GCC as the compiler.

Compiler and IDE

First, acquire C::B: Version 13.12 is verified to work.

Then, you will need a compiler toolchain. Install the 32-bit TDM-GCC bundle from: You may add the bin/ directory to your PATH but that is not necessary.

You may use other distributions (, but then you most likely cannot use the prebuilt dependencies package.

In C::B, open Settings->Compiler..., selected compiler should be GNU GCC compiler. On tab "Toolchain executables" the paths should be:

  • Compiler's install directory: C:\TDM-GCC-32 (or wherever you put it)
  • C compiler: mingw32-gcc.exe
  • C++ compiler: mingw32-g++.exe
  • Linker for dynamic libs: mingw32-g++.exe
  • Linker for static libs: ar.exe
  • Resource compiler: windres.exe
  • Make program: mingw32-make.exe

Also, in Settings->Debugger you can set the path to C:\TDM-GCC-32\bin\gdb.exe for debugging to work.


Premake4 is used to generate the C::B project file. The latest release 4.3 might work, but here is a more recent executable built from the premake-stable branch:

TODO: put this in pioneer-thirdparty repository

Third-party dependencies package

If you use TDM-GCC32 to compile, you can use this package with prebuilt dependencies (SDL, Assimp, libPNG etc.). Otherwise you have to gather your own dependencies.

Extract it to your preferred location, and copy the .dll files to the Pioneer directory.

TODO: put this in pioneer-thirdparty repository

Building the game

Open command prompt and go to pioneer/win32/codeblocks. Generate the project file:

premake4.exe --thirdparty=D:/Dev/mingw32 codeblocks

Substitute the correct location for the third-party deps root folder, using forward slashes. Using --thirdparty is optional if you set the correct include and lib paths in C::B settings.

Pioneer.cbp is generated in the build/ subdirectory, open it in C::B and build the pioneer subproject. The executables are placed in the pioneer root directory. Copy the .dlls from the third-party dependencies before running for the first time.

You need to regenerate the project every time a source file is added or removed. The generated project will not be committed to the repository.

Extra options for the premake script

--thirdparty=[location], Folder where the third-party deps are extracted
--noconsole, Don't open a console window when running the game.
--release-symbols, Include debug symbols in release build. Makes debugging possible, results in a larger executable.

Known issues

  • Plenty of warnings from contrib header files.
  • Starting the build for the entire workspace does not give the correct build order. Launch the build for the pioneer subproject instead.