Contents

Compiler and build system

xoreos is written in C++, so a C++ compiler, like GCC or clang is required. xoreos follows the C++11 standard. It has two build systems: Autotools (Autoconf, Automake and Libtool) and CMake. Use whichever you feel more comfortable with.

GNU/Linux

On Debian-based distributions (including Ubuntu), you should be able to install the required compiler and build system packages with

Mac OS X

Due to the dependency on SDL2 (see below), you need at least Mac OS X 10.5 if you use a precompiled SDL2 library, and at least Mac OS X 10.7 if you're compiling SDL2 yourself.

Windows

Since Visual Studio does not work with autotools, you have to use the CMake build system if you want to compile xoreos with Visual Studio. If you're using MinGW, however, you're free to choose either build system.

On Windows, it is recommended that instead of Visual Studio, you use MSYS2 together with Mingw-w64 (which can produce both 32-bit and 64-bit binaries). MSYS2 provides a package manager, with which you can install xoreos' library dependencies very easily.

To build a project using CMake, create a folder named build in a root directory of a project and from there invoke

cmake .. -G "Visual Studio 15 2017"

or, for 64-bit

cmake .. -G "Visual Studio 15 2017 Win64"

Open CMakeCache.txt in your favorite text editor and fill in missing information as needed. Then run cmake again. Project's solution file should be created at this point.

A note on OpenAL

On Mac OS X, we're using Apple's OpenAL implementation, so OpenAL does not need to be installed separately there.

On both GNU/Linux and Microsoft Windows, we require OpenAL Soft. There is a propriety OpenAL implementation by Creative Labs, Inc. for Microsoft Windows, which can be found at http://openal.org/, but it's unfortunately old, outdated and abandoned. We do not recommend its use.

Likewise, on NetBSD and other systems using pkgsrc, you should use openal-soft instead of openal.

Compiling xoreos

Make sure you have your compiler, build system and libraries installed correctly. Then open a terminal and change into the directory of your sources.

autotools

Type

./autogen.sh && ./configure && make

The binary can be found in the src subdirectory, called "xoreos" or, on Windows, "xoreos.exe".

Optional, non-conventional ./configure flags:

--with-werror

Compile with -Werror

--without-warnings

Compile without the extra warnings enabled

--with-lto

Compile with link-time optimization

--disable-external-glew

Always compile against the internal GLEW libraries

CMake

Type

cmake . && make

The binary can be found in the bin subdirectory, called "xoreos" or, on Windows, "xoreos.exe".

Moreover, if you're running GNU/Linux and have wrapper scripts installed that force the building of "hardened" binaries (often called "hardening-wrapper", but differs between Linux distributions), compiling xoreos might fail during the linking stage, when using statically linking Boost libraries. This is due to those static Boost libraries being incompatible with the compiler option "-fPIE", which is often added by hardening wrapper scripts. A workaround is to disable -fPIE for this compilation (which is distribution-specific).