Eden exposes a set of CMake options that let you control which dependencies are bundled, which frontends are built, and other build behaviors. This page documents every available option organized by category.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/eden-emulator/mirror/llms.txt
Use this file to discover all available pages before exploring further.
How to set options
Add-DOPTION_NAME=VALUE to your CMake configure command:
ON or OFF. String options take a plain string value.
In Qt Creator, go to Project → Current Configuration to view and edit options through the GUI.
Defaults are noted per platform. “Non-UNIX” means Windows/MSVC and Android (macOS is UNIX). If an option is marked as ON for specific platforms, it defaults to OFF everywhere else.
Dependencies
Dependencies
These options control how Eden sources its dependencies.
Usage examples:
| Option | Type | Default | Description |
|---|---|---|---|
YUZU_USE_BUNDLED_FFMPEG | bool | ON (non-UNIX) | Download a pre-built and configured FFmpeg |
YUZU_USE_EXTERNAL_FFMPEG | bool | ON (Solaris) | Build FFmpeg from source |
YUZU_DOWNLOAD_ANDROID_VVL | bool | ON | Download Vulkan validation layer binary for Android |
YUZU_DOWNLOAD_TIME_ZONE_DATA | bool | ON | Always download time zone binaries (build currently fails without this) |
YUZU_TZDB_PATH | string | — | Path to a pre-downloaded timezone database (useful for NixOS and Gentoo) |
YUZU_USE_BUNDLED_MOLTENVK | bool | ON (macOS only) | Download a bundled MoltenVK library |
YUZU_USE_BUNDLED_OPENSSL | bool | ON (MSVC, Android, Solaris, OpenBSD) | Download a bundled OpenSSL build |
YUZU_USE_EXTERNAL_SDL2 | bool | OFF | Compile SDL2 from source |
YUZU_USE_BUNDLED_SDL2 | bool | ON (MSVC) | Download a prebuilt SDL2 |
Miscellaneous
Miscellaneous
General build behavior options.
Notes:
| Option | Type | Default | Description |
|---|---|---|---|
ENABLE_WEB_SERVICE | bool | ON | Enable multiplayer web service |
ENABLE_WIFI_SCAN | bool | OFF | Enable WiFi scanning (requires iw on Linux; experimental) |
ENABLE_CUBEB | bool | ON | Enable the cubeb audio backend (subject to removal) |
YUZU_TESTS | bool | ON | Compile tests (requires Catch2) |
ENABLE_LTO | bool | OFF | Enable link-time optimization |
USE_FASTER_LINKER | bool | OFF | Check for and use a faster linker if available |
ENABLE_LTOis not recommended on Windows. On UNIX, appending-flto=thinto compiler args may be more effective.USE_FASTER_LINKERis not recommended outside of Linux.- Disabling
ENABLE_WEB_SERVICEalso removes thecpp-jwtandhttplibdependencies.
Flavors
Flavors
These options control build flavor, executable variants, and distribution-specific behavior.
Desktop-only flavor options:
| Option | Type | Default | Description |
|---|---|---|---|
YUZU_LEGACY | bool | OFF | Apply patches to improve compatibility on older GPUs at the cost of performance |
NIGHTLY_BUILD | bool | OFF | CI-only flag for nightly distribution builds. Do not use unless you’re making your own distribution and know what you’re doing. |
YUZU_STATIC_BUILD | bool | OFF | Attempt to build using static libraries where possible (not supported on Linux; automatically set when YUZU_USE_BUNDLED_QT is ON on non-Linux) |
ENABLE_UPDATE_CHECKER | bool | OFF | Enable update checking functionality |
YUZU_DISABLE_LLVM | bool | OFF | Do not attempt to link to the LLVM demangler (useful for CI or distribution builds) |
| Option | Type | Default | Description |
|---|---|---|---|
YUZU_CMD | bool | ON | Compile the SDL2 command-line frontend (eden-cli) |
YUZU_ROOM | bool | OFF | Compile dedicated room functionality into the main executable |
YUZU_ROOM_STANDALONE | bool | OFF | Compile a separate executable for room functionality |
YUZU_STATIC_ROOM | bool | OFF | Compile the room executable as a static, portable binary (Alpine Linux only) |
Desktop
Desktop
These options apply to desktop builds only.
| Option | Type | Default | Description |
|---|---|---|---|
ENABLE_LIBUSB | bool | ON | Enable the libusb input backend (highly recommended) |
ENABLE_OPENGL | bool | ON | Enable the OpenGL graphics backend (unavailable on Windows/ARM64; not recommended to disable) |
Qt
Qt
These options are desktop-only and apply specifically to the Qt frontend.
Usage examples:
| Option | Type | Default | Description |
|---|---|---|---|
ENABLE_QT | bool | ON | Enable the Qt frontend (recommended) |
ENABLE_QT_TRANSLATION | bool | OFF | Enable translations for the Qt frontend |
YUZU_USE_BUNDLED_QT | bool | ON (MSVC) | Download bundled Qt binaries (not recommended on Linux; produces a statically linked build on Windows and macOS) |
YUZU_QT_MIRROR | string | — | Mirror URL to use when downloading bundled Qt libraries |
YUZU_USE_QT_MULTIMEDIA | bool | OFF | Use QtMultimedia for camera support |
YUZU_USE_QT_WEB_ENGINE | bool | OFF | Use QtWebEngine for web applet support (adds a large dependency; not recommended) |
USE_DISCORD_PRESENCE | bool | OFF | Enable Discord Rich Presence (Qt frontend only) |
Retired options
Retired options
These options existed in earlier versions of Eden but have since been removed.
| Option | Reason for retirement |
|---|---|
ENABLE_OPENSSL | MbedTLS was fully replaced by OpenSSL in #3606. OpenSSL performs better. |
ENABLE_SDL2 | While technically possible to omit SDL2 on desktop, this is not a supported configuration. Maintaining this build matrix was not worth the effort. |
YUZU_USE_CPM | All builds now use CPMUtil to manage dependencies. To force system dependencies, use -DCPMUTIL_FORCE_SYSTEM=ON instead. |
For additional options that control the Dynarmic JIT backend, see
src/dynarmic/CMakeLists.txt. These options rarely need to be changed.