Build Systems
Windows
Windows builds use the Visual Studio solution file located atSource/dolphin-emu.sln. Dolphin targets the latest MSVC shipped with Visual Studio or Build Tools.
Other compilers might be able to build Dolphin on Windows but have not been tested and are not recommended.
Linux, macOS, and Android Native
All non-Windows platforms use CMake 3.20 or later as the build system. CMake generates platform-specific build files (Makefiles, Ninja files, etc.) that are then used to compile Dolphin.Android
Android builds use Gradle as the primary build system. The Gradle script automatically invokes CMake to build Dolphin’s native components while building the Java/Kotlin code.Compiler Requirements
Dolphin requires modern compilers with C++23 support:- GCC: Version 12 or later
- Clang: Version 15 or later
- AppleClang: Version 14.0.3 or later (Xcode 14.3+)
- MSVC: Version 19.32 or later (Visual Studio 2022 17.2.3+)
Git Submodules
Dolphin uses Git submodules for some external dependencies. You must initialize submodules before building:Dependencies
Dolphin has two types of dependencies:Bundled Dependencies
Many libraries are bundled in theExternals/ directory and used automatically if system versions aren’t available:
- fmt
- glslang
- pugixml
- enet
- xxhash
- bzip2
- liblzma
- zstd
- zlib-ng
- minizip-ng
- LZO
- lz4
- libspng
- FreeSurround
- cubeb
- libusb
- SFML
- miniupnpc
- mbedtls
- curl
- hidapi
- mGBA
- gtest (for tests)
System vs Bundled Libraries
CMake can use system-installed libraries or bundled versions. TheUSE_SYSTEM_LIBS option controls this behavior:
AUTO(default): Use system libraries if available, otherwise use bundledON: Always use system libraries and fail if unavailableOFF: Always use bundled libraries
USE_SYSTEM_<dependency> options.
CMake Options
Dolphin provides many CMake options to customize the build:Build Configuration
Frontend Options
Platform-Specific Options
Video Backend Options
Audio Backend Options
Controller Backend Options
Feature Options
Development Options
Build Directories
The build system outputs files to different locations:- Linux/macOS:
build/Binaries/ - Windows:
Binary/x64/orBinary/ARM64/(depending on architecture) - Android:
Source/Android/app/build/outputs/apk/