Skip to content
Browse files

readme: improve instructions, <3 mega

- add submodule instructions
- get rid of footnotes
- rework markdown markup
- add some badges
- more…
  • Loading branch information...
illwieckz committed Jul 7, 2019
1 parent e2024d3 commit eda51be1913e5297b413fc47a5f8c1d329b9591e
Showing with 86 additions and 18 deletions.
  1. +86 −18
@@ -1,41 +1,109 @@
# Dæmon

[![GitHub tag](](


| Windows | OSX | Linux |
| [![AppVeyor branch](]( | [![Travis branch](]( | [![Travis branch](]( |

The standalone engine that powers the multiplayer first person shooter [Unvanquished](

## Dependencies
## Workspace requirements

To fetch and build Dæmon, you'll need:
and a C++11 compiler.

`zlib`, `libgmp`, `libnettle`, `libcurl`, `SDL2`, `GLEW`, `libpng`, `libjpeg` ≥ 8, `libwebp` ≥ 0.2.0, `Freetype`, `OpenAL`, `libogg`, `libvorbis`, `libtheora`, `libopus`, `libopusfile`
The following are actively supported:
`gcc` ≥ 4.8,
`clang` ≥ 3.5,
Visual Studio/MSVC (at least Visual Studio 2017).

### Buildtime
## Dependencies

- CMake
- A C++11 compiler. The following are actively supported:
- GCC (at least 4.8)
- Visual Studio/MSVC (at least Visual Studio 2017)
- Clang (at least 3.5)
### Required

`libjpeg` ≥ 8,
`libwebp` ≥ 0.2.0,

### Optional

`ncurses`, `libGeoIP`

### MSYS2


64-bit: `mingw-w64-x86_64-{toolchain,cmake}`
_or_ 32-bit: `mingw-w64-i686-{toolchain,cmake}`

MSYS2 is an easy way to get MingW compiler and build dependencies, the standalone MingW on Windows also works.

## Download instructions

Daemon requires several sub-repositories to be fetched before compilation. If you have not yet cloned this repository:

git clone --recurse-submodules

If you have already cloned:

cd Daemon/
git submodule update --init --recursive

If cmake complains about missing files in `recastnavigation/` folder or similar issue then you have skipped this step.

## Build Instructions

Instead of `-j4` you can use `-jN` where `N` is your number of CPU cores to distribute compilation on them. Linux systems usually provide an handy `nproc` tool that tells the number of CPU core so you can just do `-j$(nproc)` to use all available cores.

Enter the directory before anything else:

cd Daemon/

### Visual Studio

1. Run CMake.
2. Choose your compiler.
3. Open `Daemon.sln` and compile.

### Linux, Mac OS X, MSYS
### Linux, macOS, MSYS2

Produced files will be stored in a new directory named `build`.

1. `mkdir build && cd build`
2. `cmake ..`
3. `make`¹
cmake -H. -Bbuild
cmake --build build -- -j4

### Linux cross-compile to Windows

1. `mkdir build && cd build`
2. `cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/cross-toolchain-mingw32.cmake ..`²
3. `make`¹
For a 32-bit build use the `cross-toolchain-mingw32.cmake` toolchain file instead.

¹ *Use `make -j$(nproc)` to speed up compilation by using all CPU cores (`make -jN` for `N` threads).*
² *Use `cross-toolchain-mingw64.cmake` for a Win64 build.*
cmake -H. -Bbuild -DCMAKE_TOOLCHAIN_FILE=cmake/cross-toolchain-mingw64.cmake
cmake --build build -- -j4

0 comments on commit eda51be

Please sign in to comment.
You can’t perform that action at this time.