This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
devel:compiling_and_running_2.0 [2018-12-15 22:15] skyjake [Get the source] |
devel:compiling_and_running_2.0 [2021-09-01 08:36] skyjake |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Compiling and running Doomsday 2.0–2.3 with CMake ====== | ||
+ | Doomsday 2 is built with [[https://cmake.org|CMake]] 3.1 (or later). | ||
+ | |||
+ | ===== Get the source ===== | ||
+ | |||
+ | There are a couple of ways to get the source code: | ||
+ | |||
+ | * Download a [[http://dengine.net/source|source package]]. | ||
+ | * Check out the [[https://github.com/skyjake/Doomsday-Engine|Doomsday-Engine]] repository from GitHub: <code bash>git clone --recursive https://github.com/skyjake/Doomsday-Engine</code> 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. | ||
+ | |||
+ | * 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. |