User Tools

Site Tools


devel:compiling_and_running_2.0

Compiling and running Doomsday 2.0–2.3 with CMake

Doomsday 2 is built with CMake 3.1 (or later).

Get the source

There are a couple of ways to get the source code:

  • Download a source package.
  • Check out the Doomsday-Engine repository from GitHub:
    git clone --recursive https://github.com/skyjake/Doomsday-Engine

    You can then switch to any release or a specific build via tags. Stable releases are tagged “release-x.y.z”.

Install dependencies

The following libraries are required for compilation:

  • Qt 5 (modules: Core, Network, Gui, OpenGLExtensions, Widgets)
  • Qt 5 X11Extras module (on Unix/X11)
  • DirectX (on Windows)

The following are optional:

  • SDL 2 (joystick support)
  • SDL_mixer 2 (audio plugin)
  • FMOD Studio Low-Level Programmer API for Doomsday 2.1+, or FMOD Ex for Doomsday 2.0 or earlier (audio plugin)
  • OpenAL (audio plugin)
  • libXrandr and libXxf86vm (X11 display mode support)

Create build directory

You must create a separate directory that is used for the build files. In-tree builds are not supported.

Build and deploy

After the dependencies are available, run CMake and configure the appropriate build variables. The following variables are noteworthy:

  • Normally you will want to set the CMAKE_BUILD_TYPE to “Release”. Note that with gcc/clang, omitting this variable will result in an unoptimized build.
  • Set the DE_PREFIX variable to define the installation root path.
  • Set the QMAKE variable to the path of the qmake tool to use (unless autodetected). This determines which version of Qt will be used in the build.
  • DENG_ENABLE_* are used for enabling and disabling Doomsday features.
  • *_DIR (e.g., FMOD_DIR) are used for configuring locations of third-party libraries.

When CMake has configured the build successfully, run your chosen build tool.

After building, you must still deploy the binaries (e.g., using make install) because Doomsday expects a particular runtime directory layout.

devel/compiling_and_running_2.0.txt · Last modified: 2021-09-01 05:37 by skyjake