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/