mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 11:03:00 +01:00
Move build instructions to the GitHub repo wiki
This commit is contained in:
137
readme.md
137
readme.md
@@ -43,8 +43,6 @@ If you want to help translate the game to your language, please stop by the Loca
|
||||
- 1 - [Introduction](#1-introduction)
|
||||
- 2 - [Downloading the game (pre-built)](#2-downloading-the-game-pre-built)
|
||||
- 3 - [Building the game](#3-building-the-game)
|
||||
- 3.1 - [Building prerequisites](#31-building-prerequisites)
|
||||
- 3.2 - [Compiling and running](#32-compiling-and-running)
|
||||
- 4 - [Contributing](#4-contributing)
|
||||
- 4.1 - [Bug fixes](#41-bug-fixes)
|
||||
- 4.2 - [New features](#42-new-features)
|
||||
@@ -92,136 +90,11 @@ Some \*BSD operating systems offer native packages:
|
||||
---
|
||||
|
||||
# 3. Building the game
|
||||
|
||||
## 3.1 Building prerequisites
|
||||
|
||||
OpenRCT2 requires original files of RollerCoaster Tycoon 2 to play. It can be bought at either [Steam](https://store.steampowered.com/app/285330/) or [GOG.com](https://www.gog.com/game/rollercoaster_tycoon_2).
|
||||
|
||||
<details>
|
||||
<summary>Windows prerequisites</summary>
|
||||
|
||||
There are two toolchain options for building the game on Windows:
|
||||
|
||||
- Visual Studio 2022 (Enterprise / Professional / [Community (Free)](https://www.visualstudio.com/vs/community/))
|
||||
- Desktop development with C++
|
||||
- MSYS2 MinGW Toolchain
|
||||
- The toolchains with supported dependencies are `mingw-x86_64`, `mingw-xi686`, `ucrt-x86_64`, `clang-x86_64`, and `clang-xi686`. Each of these require the `$MINGW_PACKAGE_PREFIX` set.
|
||||
- Note that `msys` and `clangarm-64` are lacking packages for some dependencies.
|
||||
|
||||
The projects depends on several libraries to be installed. These can be installed automatically using `msbuild` for Visual Studio builds. See section 3.2 for details.
|
||||
For MinGW builds, see the wiki for [the actual package names used in pacman](https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-MSYS2-MinGW).
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>macOS prerequisites</summary>
|
||||
|
||||
- Xcode Command Line Tools
|
||||
- [Homebrew](https://brew.sh)
|
||||
- CMake (available through Homebrew)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Linux prerequisites</summary>
|
||||
|
||||
- gcc (>= 8.0) or clang (>= 10.0) (for C++20 support)
|
||||
- sdl2 (only for UI client)
|
||||
- freetype (can be disabled)
|
||||
- fontconfig (can be disabled)
|
||||
- libzip (>= 1.0)
|
||||
- libpng (>= 1.2)
|
||||
- speexdsp (only for UI client)
|
||||
- curl (only if building with http support)
|
||||
- nlohmann-json (>= 3.9.0)
|
||||
- openssl (>= 1.0; only if building with multiplayer support)
|
||||
- icu (>= 59.0)
|
||||
- zlib
|
||||
- gl (commonly provided by Mesa or GPU vendors; only for UI client, can be disabled)
|
||||
- cmake
|
||||
- innoextract (optional runtime dependency; used for GOG installer extraction during setup)
|
||||
|
||||
Refer to https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-Linux#required-packages-general for more information about installing the packages.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
## 3.2 Compiling and running
|
||||
### Windows:
|
||||
<details>
|
||||
<summary>Show instructions</summary>
|
||||
|
||||
1. Check out the repository, this can be done using [GitHub Desktop](https://desktop.github.com) or [other tools](https://help.github.com/articles/which-remote-url-should-i-use)
|
||||
2. Open a new Developer Command Prompt for VS 2022
|
||||
3. Navigate to the repository (e.g. `cd C:\GitHub\OpenRCT2`)
|
||||
4. To build the x64 version, use `msbuild openrct2.proj /t:build /p:platform=x64`
|
||||
To build the x86 version, use `msbuild openrct2.proj /t:build /p:platform=Win32`
|
||||
To build the Arm64 version, use `msbuild openrct2.proj /t:build /p:platform=arm64`
|
||||
|
||||
**Note:** The file `g2.dat` may not be generated on cross-compilation (e.g. building for Arm64 on a x64 machine). In this case `g2.dat` must be copied from a x86/x64 build.
|
||||
5. Run the game, `bin\openrct2`
|
||||
|
||||
Once you have ran msbuild once, further development can be done within Visual Studio by opening `openrct2.sln`. Make sure to select the correct target platform for which you ran the build in point #3 (`Win32` for the x86 version, `x64` for the x64 version, `arm64` for the Arm64 version), otherwise the build will fail in Visual Studio.
|
||||
|
||||
Other examples:
|
||||
```
|
||||
set platform=x64
|
||||
msbuild openrct2.proj /t:clean
|
||||
msbuild openrct2.proj /t:rebuild /p:configuration=release
|
||||
msbuild openrct2.proj /t:g2
|
||||
msbuild openrct2.proj /t:PublishPortable
|
||||
```
|
||||
</details>
|
||||
|
||||
### macOS:
|
||||
<details>
|
||||
<summary>Show instructions</summary>
|
||||
|
||||
CMake can build either a self-contained application bundle, which includes all the necessary game files and dependencies, or it can build a command line version that links against system installed dependencies. CMake will retrieve the dependencies from [Dependencies](https://github.com/OpenRCT2/Dependencies/) automatically. You can build the macOS app using CMake using the following commands:
|
||||
```
|
||||
cmake -S . -B build
|
||||
cmake --build build --target install
|
||||
```
|
||||
Then you can run the game by opening `OpenRCT2.app`
|
||||
|
||||
To build the command line version, you'll need to disable the macOS app bundle:
|
||||
```
|
||||
|
||||
cmake -S . -B build -DMACOS_BUNDLE=off
|
||||
cmake --build build
|
||||
cmake --build build --target install
|
||||
ln -s ../data data
|
||||
```
|
||||
Then you can run the game by running `./openrct2`.
|
||||
|
||||
To link against system dependencies instead of letting CMake download the dependencies from [Dependencies](https://github.com/OpenRCT2/Dependencies), add `-DMACOS_USE_DEPENDENCIES=off` to your cmake args.
|
||||
|
||||
Detailed instructions can be found on [Building OpenRCT2 on macOS using CMake](https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-macOS-using-CMake).
|
||||
</details>
|
||||
|
||||
### Linux:
|
||||
<details>
|
||||
<summary>Show instructions</summary>
|
||||
|
||||
The standard CMake build procedure is to install the [required libraries](https://github.com/OpenRCT2/OpenRCT2#linux), then:
|
||||
```
|
||||
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=. # set your standard cmake options, e.g. build type here - For example, -DCMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
cmake --build build # you can parallelise your build job with e.g. -j 8 or consider using ninja
|
||||
cmake --build build --target install # the install target creates all the necessary files in places we expect them
|
||||
```
|
||||
|
||||
You can also use Ninja in place of Make using `-G Ninja` in the first command, if you prefer, see Wiki for details.
|
||||
|
||||
Detailed instructions can be found on [Building OpenRCT2 on Linux](https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-Linux).
|
||||
|
||||
Note: the `cmake -S . -B build` syntax is available for CMake >= 3.14. For older versions use:
|
||||
```
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -DCMAKE_INSTALL_PREFIX=. # set your standard cmake options, e.g. build type here - For example, -DCMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
cmake --build . --target install
|
||||
```
|
||||
</details>
|
||||
- [Building OpenRCT2 on Linux](https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-Linux)
|
||||
- [Building OpenRCT2 on macOS using CMake](https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-macOS-using-CMake)
|
||||
- [Building OpenRCT2 on Windows](https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-Windows)
|
||||
- [Building OpenRCT2 on Windows Subsystem for Linux](https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-Windows-Subsystem-for-Linux)
|
||||
- [Building OpenRCT2 on MSYS2 MinGW](https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-MSYS2-MinGW)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user