You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.6 KiB
4.6 KiB
CMake Options
To change these options, add -DOPTION_NAME=NEWVALUE to the command line.
- On Qt Creator, go to Project -> Current Configuration
Notes:
- Defaults are marked per-platform.
- "Non-UNIX" just means Windows/MSVC and Android (yes, macOS is UNIX
- Android generally doesn't need to change anything; if you do, go to
src/android/app/build.gradle.kts - To set a boolean variable to on, use
ONfor the value; to turn it off, useOFF - If a variable is mentioned as being e.g. "ON" for a specific platform(s), that means it is defaulted to OFF on others
- TYPE is always boolean unless otherwise specified
- Format:
OPTION_NAME(TYPE DEFAULT) DESCRIPTION
Options
Dependencies
These options control dependencies.
YUZU_USE_BUNDLED_FFMPEG(ON for non-UNIX) Download a pre-built and configured FFmpegYUZU_USE_EXTERNAL_FFMPEG(ON for Solaris) Build FFmpeg from sourceYUZU_DOWNLOAD_ANDROID_VVL(ON) Download validation layer binary for AndroidYUZU_DOWNLOAD_TIME_ZONE_DATA(ON) Always download time zone binaries- Currently, build fails without this
YUZU_TZDB_PATH(string) Path to a pre-downloaded timezone database (useful for nixOS and Gentoo)YUZU_USE_BUNDLED_MOLTENVK(ON, macOS only) Download bundled MoltenVK libYUZU_USE_BUNDLED_OPENSSL(ON for MSVC, Android, Solaris, and OpenBSD) Download bundled OpenSSL buildYUZU_USE_EXTERNAL_SDL2(OFF) Compiles SDL2 from sourceYUZU_USE_BUNDLED_SDL2(ON for MSVC) Download a prebuilt SDL2
Miscellaneous
ENABLE_WEB_SERVICE(ON) Enable multiplayer serviceENABLE_WIFI_SCAN(OFF) Enable WiFi scanning (requires iw on Linux) - experimentalENABLE_CUBEB(ON) Enables the cubeb audio backend- This option is subject for removal.
YUZU_TESTS(ON) Compile tests - requires Catch2ENABLE_LTO(OFF) Enable link-time optimization- Not recommended on Windows
- UNIX may be better off appending
-flto=thinto compiler args
USE_FASTER_LINKER(OFF) Check if a faster linker is available- Not recommended outside of Linux
Flavors
These options control executables and build flavors.
YUZU_LEGACY(OFF): Apply patches to improve compatibility on some older GPUs at the cost of performanceNIGHTLY_BUILD(OFF): This is only used by CI. Do not use this unless you're making your own distribution and know what you're doing.YUZU_STATIC_BUILD(OFF) Attempt to build using static libraries if possible- Not supported on Linux
- Automatically set if
YUZU_USE_BUNDLED_QTis on for non-Linux
ENABLE_UPDATE_CHECKER(OFF) Enable update checking functionalityYUZU_DISABLE_LLVM(OFF) Do not attempt to link to the LLVM demangler- Really only useful for CI or distribution builds
Desktop only:
YUZU_CMD(ON) Compile the SDL2 frontend (eden-cli)YUZU_ROOM(OFF) Compile dedicated room functionality into the main executableYUZU_ROOM_STANDALONE(OFF) Compile a separate executable for room functionalityYUZU_STATIC_ROOM(OFF) Compile the room executable only as a static, portable executable- This is only usable on Alpine Linux.
Desktop
The following options are desktop only.
ENABLE_LIBUSB(ON) Enable the use of the libusb input frontend (HIGHLY RECOMMENDED)ENABLE_OPENGL(ON) Enable the OpenGL graphics frontend- Unavailable on Windows/ARM64
- You probably shouldn't turn this off.
Qt
Also desktop-only, but apply strictly to Qt
ENABLE_QT(ON) Enable the Qt frontend (recommended)ENABLE_QT_TRANSLATION(OFF) Enable translations for the Qt frontendYUZU_USE_BUNDLED_QT(ON for MSVC) Download bundled Qt binaries- Not recommended on Linux. For Windows and macOS, the provided build is statically linked.
YUZU_QT_MIRROR(string) What mirror to use for downloading the bundled Qt librariesYUZU_USE_QT_MULTIMEDIA(OFF) Use QtMultimedia for camera supportYUZU_USE_QT_WEB_ENGINE(OFF) Use QtWebEngine for web applet implementation (requires the huge QtWebEngine dependency; not recommended)USE_DISCORD_PRESENCE(OFF) Enables Discord Rich Presence (Qt frontend only)
Retired Options
The following options were a part of Eden at one point, but have since been retired.
ENABLE_OPENSSL- MbedTLS was fully replaced with OpenSSL in #3606, because OpenSSL straight-up performs better.ENABLE_SDL2- While technically possible to not use SDL2 on desktop, this is NOT a supported configuration under any means, and adding this matrix to our build system was not worth the effort.
See src/dynarmic/CMakeLists.txt for additional options--usually, these don't need changed