Building Azahar on macOS requires Xcode Command Line Tools, Homebrew, and CMake 3.25 or later. Azahar supports both Apple Silicon (arm64) and Intel (x86_64) Macs, and the CI pipeline produces a universal binary by combining both architectures usingDocumentation 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.
lipo. The minimum supported macOS version is 13.4 (Ventura), and AppleClang 15.0 or later is required.
Install Xcode Command Line Tools
Run the following command in Terminal. A dialog will appear prompting you to install the tools:Once the installation completes, verify that the compiler is available:
Install Homebrew
If you do not already have Homebrew, install it by running the official install script:Follow the on-screen instructions. On Apple Silicon Macs, Homebrew installs to
/opt/homebrew/; on Intel Macs it installs to /usr/local/. Make sure Homebrew’s bin directory is in your PATH.Install dependencies
Install the required build tools and libraries via Homebrew:Several additional libraries—including
dynarmic, fmt, cryptopp, soundtouch, cubeb, openal-soft, glslang, vulkan-headers, and MoltenVK—are bundled as Git submodules or downloaded automatically by CMake during configuration. You do not need to install them separately.Clone the repository with submodules
Clone the Azahar repository and initialize all submodules:If you already cloned without
--recurse-submodules, run:Configure with CMake
Create a build directory and configure the project. CMake will automatically detect your architecture.To target a specific architecture explicitly (useful when building a fat binary), pass Commonly used CMake options are listed below:
CMAKE_OSX_ARCHITECTURES:| Option | Default | Description |
|---|---|---|
ENABLE_QT | ON | Build the Qt6 desktop frontend |
ENABLE_VULKAN | ON | Enable the Vulkan renderer (via MoltenVK) |
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 |
ENABLE_ROOM_STANDALONE | ON | Build the standalone azahar-room server |
Build
Compile the project:To create a distributable The finished app bundle appears at
.app bundle with all required frameworks and libraries included, run the bundle target:build/bundle/Azahar.app.Apple Silicon and Intel support
Azahar supports both arm64 and x86_64 natively. If you want to produce a single universal binary that runs on both, build each architecture separately and then merge them using After merging, re-sign the app bundle:
lipo:The CI pipeline automates this process using the
.ci/macos-universal.sh script, which also merges all bundled .dylib files that do not have conflicting architectures.