Eden requires a handful of compilers, tools, and libraries before you can build it. This page lists every requirement by platform and provides exact install commands for a wide range of operating systems.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.
Compiler requirements
You must have a C++ compiler installed before anything else.| Platform | Supported compilers |
|---|---|
| Linux | GCC 11+ or Clang 14+ (GCC 12 also requires Clang 14+) |
| Windows | MSVC (Visual Studio 2022 Community, recommended), clang-cl, or MSYS2 |
| macOS | Apple Clang via xcode-select --install |
On Windows with MSVC, install the Desktop development with C++ workload. For clang-cl, install C++ Clang tools for Windows from the Visual Studio installer.
Required tools
In addition to a compiler, you need:- CMake 3.22+ — already included with the Android SDK
- Git — use the Windows installer on Windows
- Python 3.10+ — required to download external repositories
- Vulkan SDK (Windows only) — install from LunarG; convenience scripts are provided at
tools/windows/install-vulkan-sdk.ps1(PowerShell 5+) andtools/windows/install-vulkan-sdk.sh(Git Bash)
Qt 6
If you are on desktop and plan to use the Qt frontend, you must install Qt 6. Qt Creator is the recommended IDE for building Eden.- On Linux, *BSD, and macOS, install Qt 6 via the package manager. Append
qtcreatororqt-creatorto the commands below if you also want Qt Creator. - On Windows with MSVC or clang-cl, install through the official Qt online installer.
- MSYS2 can install Qt 6 via its package manager.
./install.sh -h qtcreator from the Eden source root.
Externals (CPM-managed dependencies)
The following libraries are handled by Eden’s externals system and can be controlled with CMake flags:- FFmpeg — use
-DYUZU_USE_EXTERNAL_FFMPEG=ON - SDL2 2.0.18+ — use
-DYUZU_USE_EXTERNAL_SDL2=ONor-DYUZU_USE_BUNDLED_SDL2=ONto reduce compile time
- Boost 1.57.0+
- Catch2 3.0.1+ (if
YUZU_TESTSorDYNARMIC_TESTSare enabled) - fmt 8.0.1+
- lz4
- nlohmann_json 3.8+
- OpenSSL 3+
- ZLIB 1.2+
- zstd 1.5+
- enet 1.3+
- Opus 1.3+
- VulkanUtilityLibraries
- VulkanHeaders
- SPIRV-Tools
- SPIRV-Headers
- SimpleIni
- DiscordRPC
- cubeb
- libusb
- VulkanMemoryAllocator
- sirit
- httplib (if
ENABLE_UPDATE_CHECKERorENABLE_WEB_SERVICEare on; known to be broken on the AUR) - cpp-jwt 1.4+ (if
ENABLE_WEB_SERVICEis on) - unordered-dense
- amd64: xbyak (7.22 or earlier recommended)
- aarch64 or if
DYNARMIC_TESTSis on: oaknut 2.0.1+ - riscv64: biscuit 0.9.1+
Install commands by platform
Always review commands before running them.Platform notes
Gentoo Linux
Gentoo Linux
- On
amd64, also adddev-libs/xbyak - On
riscv64, also adddev-libs/biscuit(currently unavailable) - On
aarch64, also adddev-libs/oaknut - If tests are enabled, also add
dev-libs/oaknutanddev-cpp/catch
dev-qt/qtbase network concurrent dbus gui widgetsdev-libs/quazip qt6media-libs/libsdl2 haptic joystick sound videodev-cpp/cpp-httplib ssl
games-emulation/eden package is available in GURU. If you run into build issues, compare against the ebuild.Arch Linux
Arch Linux
- Building with Qt Web Engine requires
qt6-webengine. - Proper Wayland support requires
qt6-wayland. - GCC 11 or later is required.
- Eden is also available as an AUR package.
Ubuntu / Debian / Mint
Ubuntu / Debian / Mint
- Ubuntu 22.04, Linux Mint 20, or Debian 12 or later is required.
- To enable Qt Web Engine, add
-DYUZU_USE_QT_WEB_ENGINE=ONto your CMake command.
Fedora / AlmaLinux / RHEL
Fedora / AlmaLinux / RHEL
- RPM Fusion is required for
ffmpeg-devel. - Fedora 32 or later is required.
- Fedora 36+ users with GCC 12 need Clang:
cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -B build - For OpenEuler or derivatives, also install:
SDL2-devel pkg-config fmt-dev nlohmann-json-dev
Alpine Linux
Alpine Linux
Enable the community repository with
setup-apkrepos -c before installing.Void Linux
Void Linux
Note that
nlohmann-json is packaged as json-c++ on Void.NixOS
NixOS
A
shell.nix convenience script is provided at the root of the Eden repository. Run nix-shell from there.For a pure build (no downloaded deps), use -DYUZU_USE_CPM=ON -DCPMUTIL_FORCE_SYSTEM=ON.macOS
macOS
If compiling on Intel Mac or using a Rosetta Homebrew installation, replace all references to
/opt/homebrew with /usr/local.macOS is largely untested. Expect crashes, significant Vulkan issues, and related instability.FreeBSD
FreeBSD
If using FreeBSD 12 or earlier, use
devel/pkg-config instead of devel/pkgconf.The available OpenSSL port (3.0.17) is out of date; add -DYUZU_USE_BUNDLED_OPENSSL=ON to your CMake command.Gamepad/controller support may be broken on FreeBSD 15.0 due to an SDL conflict with the new usbhid(2) driver. Workaround: add hw.usb.usbhid.enable="0" to /boot/loader.conf.NetBSD
NetBSD
NetBSD’s default
g++-10 is too old. Install clang-19 with pkgin install clang-19, or gcc14/gcc15.As of 2026-02-07, do not install vulkan-headers from pkgsrc — it is older than required. Build a newer version from source.glslang is not available in binary form; you must build it yourself:OpenBSD
OpenBSD
System Boost does not include
context (as of 7.8). You may need to add -DYUZU_USE_CPM=ON -DBoost_FORCE_BUNDLED=ON.Builds are currently affected by a lack of std::jthread support. Either compile libc++ manually or wait for ports to catch up.DragonFlyBSD
DragonFlyBSD
As of 2026-02-07, do not install
vulkan-headers or vulkan-utility-libraries from packages — version 1.3.289 is too old.Default g++ is outdated; install gcc14 and point CMake to it: -DCMAKE_CXX_COMPILER=gcc14 -DCMAKE_C_COMPILER=g++14.OpenIndiana
OpenIndiana
Qt Widgets is currently broken on OpenIndiana. Add
-DENABLE_QT=OFF to your configure command for now.Always consult the OpenIndiana package list to verify package availability. System OpenSSL generally does not work; use -DYUZU_USE_BUNDLED_OPENSSL=ON instead.OmniOS
OmniOS
Most dependencies are missing on OmniOS; use
-DCPMUTIL_FORCE_BUNDLED=ON -DYUZU_USE_EXTERNAL_SDL2=ON.You must build glslang yourself (see the OmniOS section of the Caveats page for details).MSYS2
MSYS2
- Only the
MINGW64environment (orCLANGARM64on ARM) is tested. - Open the
MSYS2 MinGW 64-bitshell (mingw64.exe) before running the install command. - Add MinGW binaries to PATH:
echo 'PATH=/mingw64/bin:$PATH' >> ~/.bashrc - Using
qt6-staticis possible if you build with-DYUZU_STATIC_BUILD=ON.
HaikuOS
HaikuOS
Run
pkgman full-sync before installing. GPU support is limited; install mesa_lavapipe for acceptable performance.glslangValidator will crash on HaikuOS. You must build glslang yourself using the patch at .patch/glslang/0001-haikuos-fix.patch.Disable cubeb or uninstall cubeb_devel — it will not work. Uninstall quazip1_qt6_devel if present.