Build ‐ Linux ‐ Fedora - daid/EmptyEpsilon GitHub Wiki
Be sure to check Build for generic instructions.
Current as of 2025-05-25 on Fedora 42
⚠️ Before October 2021, the project relied on SFML. Check the previous instructions if you're building for an older version.
You can build EmptyEpsilon for Linux on Fedora systems. Cross-compilation of Windows builds is not supported on Fedora; see Build ‐ Windows on Linux for instructions compatible with and tested on Debian and Ubuntu.
Requirements
Install the prerequisite packages:
dnf install git gcc gcc-c++ cmake python3 ninja-build SDL2-devel SDL2_gfx-devel SDL2_image-devel SDL2_mixer-devel SDL2_ttf-devel SDL2_net-devel rpm-build
Note that on Fedora 42 and later, SDL2-devel
is a metapackage that installs SDL3 with SDL2 compatibility libraries (SDL3-devel
and sdl2-compat-devel
). Errors in the compatibility libraries might introduce bugs or unexpected behaviors to EmptyEpsilon because it's designed for SDL2.
Clone the repositories:
git clone https://github.com/daid/SeriousProton.git
git clone https://github.com/daid/EmptyEpsilon.git
Build latest version
Update the repositories to the latest versions of the master
branch, then build the source:
cd SeriousProton
git checkout master
git pull
cd ../EmptyEpsilon
git checkout master
git pull
# Build the source:
mkdir -p _build
cd _build
cmake .. -G Ninja -DCPACK_GENERATOR="RPM" -DSERIOUS_PROTON_DIR=$PWD/../../SeriousProton/
ninja
To create a .rpm
package, run ninja package
. The resulting RPM requires the freetype
and SDL2
packages as dependencies.
To create a .deb
package with ninja package
, remove -DCPACK_GENERATOR="RPM"
from the cmake
line.
To build from a different git tag or ref, replace master
in git checkout master
.
To set the EmptyEpsilon version, set the CPACK_PACKAGE_VERSION
values as flags, such as -DCPACK_PACKAGE_VERSION_MAJOR=2024 -DCPACK_PACKAGE_VERSION_MINOR=12 -DCPACK_PACKAGE_VERSION_PATCH=08
, as described in the Build doc.
Troubleshooting
If the cmake
command fails with a message about Ninja support for RPATH
, add the -DCMAKE_BUILD_WITH_INSTALL_RPATH=true
flag:
cmake .. -G Ninja -DCMAKE_MAKE_PROGRAM=ninja -DCMAKE_BUILD_WITH_INSTALL_RPATH=true -DSERIOUS_PROTON_DIR=$PWD/../../SeriousProton/