Skip to content
anthony.samms edited this page May 28, 2026 · 2 revisions

Building on Linux

Prerequisites

Install the required system packages. The exact package names below are for Ubuntu/Debian; adjust for your distro.

sudo apt-get update
sudo apt-get install -y \
  git cmake ninja-build python3 pkg-config \
  gcc g++ \
  libgl1-mesa-dev libglu1-mesa-dev \
  libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev \
  libwayland-dev libxkbcommon-dev libegl-dev \
  libasound2-dev libpulse-dev libjack-jackd2-dev \
  libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libswresample-dev \
  libsndfile1-dev libsamplerate0-dev \
  libsqlite3-dev \
  libunwind-dev \
  patchelf mold

Note: mold is optional but recommended — the build system will use it automatically if found, significantly reducing link times.

Python 3

Code generation runs during the CMake configure step and requires python3 to be on your PATH.


Clone the Repository

git clone --recurse-submodules https://github.com/Yonokid/YataiDON
cd YataiDON

If you already cloned without submodules:

git submodule update --init --recursive

Build

Debug

./build_debug.sh

Release

Or with the helper script:

./build_release.sh

For a fast incremental rebuild without reconfiguring:

./build_re.sh

Running

From the repo root, the game expects the following directories alongside the binary:

YataiDON        ← executable
Skins/
Songs/
shader/
config.toml

Run from the repo root after a debug build:

./YataiDON

Notes

  • Address/leak/UB sanitizers are enabled automatically in Debug builds (-fsanitize=address,leak,undefined). If you want a debug build without sanitizers, pass -DCMAKE_CXX_FLAGS="" to CMake or edit cmake/platform.cmake.
  • FFmpeg is resolved via pkg-config. Ensure the development packages (libavformat-dev, etc.) are installed.
  • PortAudio is supplied as a prebuilt static archive (src/libs/audio/libportaudio-linux.a); no separate installation is needed.
  • libsndfile and libsamplerate are built from source via FetchContent if the system versions are not found.
  • Dependencies fetched by CMake are cached in .cmake-deps/ in the repo root, so subsequent configures are fast.

Clone this wiki locally