Skip to main content
Dolphin uses CMake for building on macOS. This guide covers both single-architecture and universal binary builds.

Prerequisites

Required Software

  • macOS: 11.0 Big Sur or later
  • Xcode: 14.3 or later
  • CMake: Version 3.20 or later
  • Git: For cloning the repository

Compiler Requirements

Dolphin requires AppleClang with C++23 support:
  • AppleClang: Version 14.0.3 or later (included in Xcode 14.3+)
CMake will inform you if your compiler version is insufficient.

Installing Dependencies

While many dependencies are bundled, some system libraries may improve build times:

Single-Architecture Build

Building for a single architecture (either x64 or ARM64) is the simplest approach.

Universal Binary Build

Universal binaries support both x64 (Intel) and ARM64 (Apple Silicon) in a single application bundle.

Universal Build Requirements

Building universal binaries is more complex because it requires:
  • Library dependencies for both x64 and ARM64 architectures
  • OR universal library equivalents that support both architectures
  • Additional configuration for library locations
If you have architecture-specific libraries installed, you may need to specify their locations using additional arguments.

Universal Build Script Options

View available options:
Common options:

CMake Build Options

Customize your macOS build with these options:

Common Options

Architecture-Specific Builds

Building for Apple Silicon (ARM64)

On an Apple Silicon Mac, CMake defaults to ARM64:

Building for Intel (x64)

On an Intel Mac, CMake defaults to x64:

Cross-Compilation

To build for a different architecture than your Mac:
Cross-compilation requires dependencies for the target architecture.

Code Signing

macOS requires code signing, especially on Apple Silicon Macs.

Adhoc Signing (Default)

Dolphin uses adhoc signing by default:
This is sufficient for local development and testing.

Developer ID Signing

For distribution:

Disabling Code Signing

Disabling code signing will prevent Dolphin from running on Apple Silicon Macs.

Advanced Build Scenarios

Bundle Postprocessing

For redistributable builds:
This ensures all dependencies are properly bundled within the app.

Custom Deployment Target

Change the minimum macOS version:
Default is macOS 11.0 (Big Sur). Enable LTO for better performance:

Troubleshooting

Xcode Version Too Old

Error: CMake reports AppleClang version is too old Solution: Update Xcode through the Mac App Store or download from Apple Developer. Minimum requirement: Xcode 14.3 (AppleClang 14.0.3)

Submodules Not Initialized

Error: Missing header files from Externals Solution:

Code Signing Errors on Apple Silicon

Error: Binary won’t run on Apple Silicon Solution: Ensure code signing is enabled:

Universal Binary Build Fails

Error: Missing libraries for one architecture Solution: Universal builds require dependencies for both architectures. Either:
  1. Install universal versions of dependencies
  2. Install separate versions for each architecture and specify paths:

MoltenVK Issues

Error: Vulkan backend not working Solution: Ensure bundled MoltenVK is enabled:

Build Errors After Git Pull

Solution: Clean and rebuild:

Library Path Issues

Error: CMake can’t find certain libraries Solution: If using Homebrew, library paths differ by architecture:
  • Apple Silicon: /opt/homebrew/
  • Intel: /usr/local/
Specify the correct path:

Running the Built Application

From Build Directory

From Command Line

Installing to Applications

Uninstalling

To uninstall Dolphin:

Next Steps

After building:
  • The application bundle is ready to use in Binaries/Dolphin.app
  • User data is stored in ~/Library/Application Support/Dolphin/
  • For distribution, consider bundle postprocessing and proper code signing
For universal binaries intended for distribution, use the universal build script and enable bundle postprocessing.