2025-09-18 08:37:02 +08:00
# Building Eden
> [!WARNING]
> This guide is intended for developers ONLY. If you are not a developer or packager, you are unlikely to receive support.
This is a full-fledged guide to build Eden on all supported platforms.
## Dependencies
2026-01-30 18:35:39 +08:00
2025-09-18 08:37:02 +08:00
First, you must [install some dependencies ](Deps.md ).
## Clone
2026-01-30 18:35:39 +08:00
2025-09-18 08:37:02 +08:00
Next, you will want to clone Eden via the terminal:
```sh
git clone https://git.eden-emu.dev/eden-emu/eden.git
cd eden
```
Or use Qt Creator (Create Project -> Import Project -> Git Clone).
## Android
Android has a completely different build process than other platforms. See its [dedicated page ](build/Android.md ).
## Initial Configuration
If the configure phase fails, see the `Troubleshooting` section below. Usually, as long as you followed the dependencies guide, the defaults *should* successfully configure and build.
2025-11-16 00:53:13 +08:00
### Option A: Qt Creator
2025-09-18 08:37:02 +08:00
This is the recommended GUI method for Linux, macOS, and Windows.
< details >
< summary > Click to Open< / summary >
Open the CMakeLists.txt file in your cloned directory via File -> Open File or Project (Ctrl+O), if you didn't clone Eden via the project import tool.
Select your desired "kit" (usually, the default is okay). RelWithDebInfo or Release is recommended:

Hit "Configure Project", then wait for CMake to finish configuring (may take a while on Windows).
< / details >
2025-11-16 00:53:13 +08:00
### Option B: Command Line
2025-09-18 08:37:02 +08:00
< details >
< summary > Click to Open< / summary >
2025-11-16 00:53:13 +08:00
> [!WARNING]
>For all systems:
2026-01-30 18:35:39 +08:00
>
2025-11-16 00:53:13 +08:00
>- *CMake* **MUST** be in your PATH (and also *ninja* , if you are using it as `<GENERATOR>` )
>- You *MUST* be in the cloned *Eden* directory
Available `<GENERATOR>` :
2026-01-30 18:35:39 +08:00
2026-05-06 12:25:30 +08:00
- MSYS2: `Ninja`
2025-09-18 08:37:02 +08:00
- macOS: `Ninja` (preferred) or `Xcode`
- Others: `Ninja` (preferred) or `UNIX Makefiles`
2025-11-16 00:53:13 +08:00
Available `<BUILD_TYPE>` :
2026-01-30 18:35:39 +08:00
2025-11-16 00:53:13 +08:00
- `Release` (default)
- `RelWithDebInfo` (debug symbols--compiled executable will be large)
- `Debug` (if you are using a debugger and annoyed with stuff getting optimized out)
2026-05-06 12:25:30 +08:00
Also see the root CMakeLists.txt for more build options. Usually the default will provide the best experience.
2025-09-18 08:37:02 +08:00
```sh
2025-11-16 00:53:13 +08:00
cmake -S . -B build -G "< GENERATOR > " -DCMAKE_BUILD_TYPE=< BUILD_TYPE > -DYUZU_TESTS=OFF
2025-09-18 08:37:02 +08:00
```
< / details >
## Troubleshooting
If your initial configure failed:
2026-01-30 18:35:39 +08:00
2025-09-18 08:37:02 +08:00
- *Carefully* re-read the [dependencies guide ](Deps.md )
- Clear the CPM cache (`.cache/cpm`) and CMake cache (`< build directory > /CMakeCache.txt`)
- Evaluate the error and find any related settings
- See the [CPM docs ](CPM.md ) to see if you may need to forcefully bundle any packages
2025-12-17 21:36:35 +08:00
Otherwise, feel free to ask for help in Stoat or Discord.
2025-09-18 08:37:02 +08:00
## Caveats
Many platforms have quirks, bugs, and other fun stuff that may cause issues when building OR running. See the [Caveats page ](Caveats.md ) before continuing.
## Building & Running
2025-11-16 00:53:13 +08:00
### On Qt Creator
2025-09-18 08:37:02 +08:00
Simply hit Ctrl+B, or the "hammer" icon in the bottom left. To run, hit the "play" icon, or Ctrl+R.
2025-11-16 00:53:13 +08:00
### On Command Line
2025-09-18 08:37:02 +08:00
2025-11-16 00:53:13 +08:00
If you are using the `UNIX Makefiles` or `Visual Studio 17 2022` as `<GENERATOR>` , you should also add `--parallel` for faster build times.
2025-09-18 08:37:02 +08:00
2026-01-30 18:35:39 +08:00
```sh
2025-09-18 08:37:02 +08:00
cmake --build build
```
Your compiled executable will be in:
2026-01-30 18:35:39 +08:00
2025-09-18 08:37:02 +08:00
- `build/bin/eden.exe` for Windows,
- `build/bin/eden.app/Contents/MacOS/eden` for macOS,
- and `build/bin/eden` for others.
## Scripts
2026-01-30 18:35:39 +08:00
Take a look at our [CI scripts ](https://github.com/Eden-CI/Workflow ). You can use `.ci/common/configure.sh` on any POSIX-compliant shell, but you are heavily encouraged to instead write your own based. It's not really that hard, provided you can read CMake.