mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-19 14:38:18 +00:00
Merge pull request #2022 from heinrich5991/pr_readme_build
Add build instructions to readme.md
This commit is contained in:
commit
f4c0f57bef
122
readme.md
122
readme.md
|
@ -21,8 +21,122 @@ text including copyright information.
|
||||||
Please visit https://www.teeworlds.com/ for up-to-date information about
|
Please visit https://www.teeworlds.com/ for up-to-date information about
|
||||||
the game, including new versions, custom maps and much more.
|
the game, including new versions, custom maps and much more.
|
||||||
|
|
||||||
Instructions to build the game can be found at
|
|
||||||
https://teeworlds.com/?page=docs&wiki=compiling_everything. In
|
|
||||||
particular, you will need SDL2 and FreeType installed.
|
|
||||||
|
|
||||||
Originally written by Magnus Auvinen.
|
Originally written by Magnus Auvinen.
|
||||||
|
|
||||||
|
|
||||||
|
Building on Linux or macOS
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Installing dependencies
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
# Debian/Ubuntu
|
||||||
|
sudo apt install build-essential cmake git libfreetype6-dev libsdl2-dev libpnglite-dev libwavpack-dev python3
|
||||||
|
|
||||||
|
# Fedora
|
||||||
|
sudo dnf install @development-tools cmake gcc-c++ git freetype-devel mesa-libGLU-devel pnglite-devel python3 SDL2-devel wavpack-devel
|
||||||
|
|
||||||
|
# Arch Linux (doesn't have pnglite in its repositories)
|
||||||
|
sudo pacman -S --needed base-devel cmake freetype2 git glu python sdl2 wavpack
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
sudo brew install cmake freetype sdl2
|
||||||
|
|
||||||
|
|
||||||
|
Downloading repository
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
git clone https://github.com/teeworlds/teeworlds --recurse-submodules
|
||||||
|
cd teeworlds
|
||||||
|
|
||||||
|
# If you already cloned the repository before, use:
|
||||||
|
# git submodule update --init
|
||||||
|
|
||||||
|
|
||||||
|
Building
|
||||||
|
--------
|
||||||
|
|
||||||
|
mkdir -p build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
make
|
||||||
|
|
||||||
|
On subsequent builds, you only have to repeat the `make` step.
|
||||||
|
|
||||||
|
You can then run the client with `./teeworlds` and the server with
|
||||||
|
`./teeworlds_srv`.
|
||||||
|
|
||||||
|
|
||||||
|
Build options
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The following options can be passed to the `cmake ..` command line (between the
|
||||||
|
`cmake` and `..`) in the "Building" step above.
|
||||||
|
|
||||||
|
`-GNinja`: Use the Ninja build system instead of Make. This automatically
|
||||||
|
parallizes the build and is generally **faster**. (Needs `sudo apt install
|
||||||
|
ninja-build` on Debian, `sudo dnf install ninja-build` on Fedora, and `sudo
|
||||||
|
pacman -S --needed ninja` on Arch Linux.)
|
||||||
|
|
||||||
|
`-DDEV=ON`: Enable debug mode and disable some release mechanics. This leads to
|
||||||
|
**faster** builds.
|
||||||
|
|
||||||
|
`-DCLIENT=OFF`: Disable generation of the client target. Can be useful on
|
||||||
|
headless servers which don't have graphics libraries like SDL2 installed.
|
||||||
|
|
||||||
|
|
||||||
|
Building on Windows with Visual Studio
|
||||||
|
======================================
|
||||||
|
|
||||||
|
Download and install some version of [Microsoft Visual
|
||||||
|
Studio](https://www.visualstudio.com/) (as of writing, MSVS Community 2017)
|
||||||
|
with the following components:
|
||||||
|
|
||||||
|
* Desktop development with C++ (on the main page)
|
||||||
|
* Python development (on the main page)
|
||||||
|
* Git for Windows (in Individual Components → Code tools)
|
||||||
|
|
||||||
|
Run Visual Studio. Open the Team Explorer (View → Team Explorer, Ctrl+^,
|
||||||
|
Ctrl+M). Click Clone (in the Team Explorer, Connect → Local Git Repositories).
|
||||||
|
Enter `https://github.com/teeworlds/teeworlds` into the first input box. Wait
|
||||||
|
for the download to complete (terminals might pop up).
|
||||||
|
|
||||||
|
Wait until the CMake configuration is done (watch the Output windows at the
|
||||||
|
bottom).
|
||||||
|
|
||||||
|
Select `teeworlds.exe` in the Select Startup Item… combobox next to the green
|
||||||
|
arrow. Wait for the compilation to finish.
|
||||||
|
|
||||||
|
For subsequent builds you only have to click the button with the green arrow
|
||||||
|
again.
|
||||||
|
|
||||||
|
|
||||||
|
Building on Windows with MinGW
|
||||||
|
==============================
|
||||||
|
|
||||||
|
Download and install MinGW with at least the following components:
|
||||||
|
|
||||||
|
- mingw-developer-toolkit-bin
|
||||||
|
- mingw32-base-bin
|
||||||
|
- mingw32-gcc-g++-bin
|
||||||
|
- msys-base-bin
|
||||||
|
|
||||||
|
Also install [Git](https://git-scm.com/downloads) (for downloading the source
|
||||||
|
code), [Python](https://www.python.org/downloads/) and
|
||||||
|
[CMake](https://cmake.org/download/).
|
||||||
|
|
||||||
|
Open CMake ("CMake (cmake-gui)" in the start menu). Click "Browse Source"
|
||||||
|
(first line) and select the directory with the Teeworlds source code. Next,
|
||||||
|
click "Browse Build" and create a subdirectory for the build (e.g. called
|
||||||
|
"build"). Then click "Configure". Select "MinGW Makefiles" as the generator and
|
||||||
|
click "Finish". Wait a bit (until the progress bar is full). Then click
|
||||||
|
"Generate".
|
||||||
|
|
||||||
|
You can now build Teeworlds by executing `mingw32-make` in the build directory.
|
||||||
|
|
||||||
|
|
||||||
|
Building with bam, guides for all operating systems
|
||||||
|
===================================================
|
||||||
|
|
||||||
|
You can also compile Teeworlds with bam, a custom build system. Instructions
|
||||||
|
for that can be found at https://www.teeworlds.com/?page=docs&wiki=hacking.
|
||||||
|
|
Loading…
Reference in a new issue