-
Notifications
You must be signed in to change notification settings - Fork 183
Build
In order to communicate with each other, the server and all clients need to share the same version number. Servers and clients whose version numbers are 0
bypass this check. In any case, they might not function properly with each other if built from different codebases.
If you intend to play using the official builds, for example, ensure that you're on the same codebase by checking out the release tag. You can view these tags in the GitHub repository or by running git tag --sort -v:refname
. You also should override the version numbering in the build scripts, as by default the current compile date (not the tag/release/etc.) is used to generate the version number.
For example, to create builds which share the same codebase with the October 28, 2022, official builds, check out the corresponding release tag, being in the SeriousProton and EmptyEpsilon directories:
cd SeriousProton
git checkout EE-2022.10.28
cd ../EmptyEpsilon
git checkout EE-2022.10.28
To define the version number for CMake in the build process and override the automatic version number:
The preferred method of setting a version number is to define the version in a CMake-syntax file and include it using the -DCMAKE_PROJECT_EmptyEpsilon_INCLUDE
flag.
This file should contain CMake set
statements for each version variable, and should be located somewhere in the project. For our October 28, 2022, example, the file's contents would be
set(PROJECT_VERSION 2022.10.28)
set(PROJECT_VERSION_MAJOR 2022)
set(PROJECT_VERSION_MINOR 10)
set(PROJECT_VERSION_PATCH 28)
When running cmake, the path to the file is relative to the project (repository) root. Assuming you saved the file as version.cmake
and it's located in ~/git/daid/EmptyEpsilon/
, and you're running cmake from ~/git/daid/EmptyEpsilon/_build
, the cmake command you run from your build directory might resemble:
cmake .. -G Ninja -DSERIOUS_PROTON_DIR=../../SeriousProton -DCMAKE_PROJECT_EmptyEpsilon_INCLUDE=./version.cmake
To change the version number, update the contents of the version.cmake
file, then re-run cmake. (Building with ninja
re-runs cmake automatically.)
A deprecated, but still working, method of setting the version number is to add the following defines to the end of the relevant CMake command, after a space:
-DCPACK_PACKAGE_VERSION_MAJOR=2022 -DCPACK_PACKAGE_VERSION_MINOR=10 -DCPACK_PACKAGE_VERSION_PATCH=28
For an older discussion of options to set the version number, see issue #221.
To enable debug features in a build, add a build type define to the relevant CMake line:
-DCMAKE_BUILD_TYPE="Debug"
For details, see Build ‐ Debug.
An alternative to debug that could help find problems, but won't abruptly stop the server on certain conditions:
-DCMAKE_BUILD_TYPE=RelWithDebInfo
"Release with debug info" creates a release but has enough stack trace information that if an error occurs, it is a bit easier to track down. It's not quite as rigorous as plain Debug.
Build from source for a Windows target:
If builds fail with "Fatal error: Windows.h: No such file or directory", see discord/gamesdk-and-dispatch issue #100 for workarounds.
Build from source for a Linux target:
- Build ‐ Linux ‐ Debian for any Debian-based distribution, including Debian, Ubuntu, and Raspbian for the Raspberry Pi
- Build ‐ Alpine for Alpine Linux
- Build ‐ RPi ‐ Alpine for Alpine Linux on Raspberry Pi
- Build ‐ Linux ‐ Fedora
- Build ‐ Linux ‐ OpenSuSE
- Build ‐ Linux ‐ Nix for systems with Nix (package manager) installed or for NixOS
macOS builds are possible but not fully supported.
- Home
- Stations
- Main Screen/Captain
- 5-6 Player Crews
- 3-4 Player Crews
- 1 Player Crew
- Game Master
- Additional Stations and Views
- Setting up a Game
- Lore
- Expanding the Game
- Additional Features
- Building from Source