Building Azahar on Windows requires a C++20-capable compiler, CMake 3.25 or later, and a set of libraries that you can install through MSYS2 or Visual Studio. MSYS2 provides a more Linux-like workflow and is the recommended path for most contributors.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/azahar-emu/azahar/llms.txt
Use this file to discover all available pages before exploring further.
MSYS2 is the recommended toolchain for building Azahar on Windows. It gives you access to a full pacman package ecosystem, avoids many MSVC-specific compatibility quirks, and matches the environment used in CI. Use MSVC only if you have a specific reason to do so.
Install a compiler toolchain
Choose one of the two supported toolchains.
- MSYS2 (recommended)
- MSVC
Download and run the MSYS2 installer from msys2.org. Once installed, open the MSYS2 MinGW UCRT64 shell (not the plain MSYS2 shell) for all subsequent steps.Update the package database before installing anything:Restart the shell when prompted, then run the update again to finish:
Install dependencies via MSYS2 pacman
In the MSYS2 MinGW UCRT64 shell, install the required build tools and libraries:Several additional dependencies—including
dynarmic, fmt, cryptopp, soundtouch, cubeb, openal-soft, glslang, and vulkan-headers—are bundled as Git submodules and built automatically as part of the CMake configuration.Clone the repository with submodules
Clone the Azahar repository and initialize all submodules in a single command:If you already cloned without
--recurse-submodules, fetch the submodules manually:Configure with CMake
Create a build directory and run CMake from inside it. The default configuration builds the Qt frontend and enables SDL2, OpenAL, cubeb, libusb, and the Vulkan renderer.You can pass additional flags to customize the build. Some commonly used options are listed below:
For example, to enable Discord Rich Presence:
| Option | Default | Description |
|---|---|---|
ENABLE_QT | ON | Build the Qt6 desktop frontend |
ENABLE_SDL2 | ON | Enable SDL2 input/audio backend |
ENABLE_VULKAN | ON | Enable the Vulkan renderer |
ENABLE_OPENGL | ON | Enable the OpenGL renderer |
ENABLE_OPENAL | ON | Enable the OpenAL audio backend |
ENABLE_CUBEB | ON | Enable the cubeb audio backend |
ENABLE_LIBUSB | ON | Enable libusb for GameCube Adapter support |
USE_DISCORD_PRESENCE | OFF | Enable Discord Rich Presence |
ENABLE_QT_TRANSLATION | OFF | Bundle Qt UI translations |