yuzu-wiki/Building-for-Linux.md

3.1 KiB

Dependencies

You'll need to download and install the following to build yuzu:

All other dependencies will be downloaded by conan if needed:

  • Boost
  • Catch2
  • fmt
  • lz4
  • nlohmann_json
  • OpenSSL
  • opus
  • ZLIB
  • zstd
    Distro Commands
    Arch sudo pacman -S --needed git base-devel ninja cmake sdl2 qt5 python2 python-pip boost catch2 fmt libzip lz4 mbedtls nlohmann-json openssl opus zlib zstd && sudo pip install conan
    Ubuntu / Mint sudo apt-get install git build-essential ninja-build cmake libsdl2-dev qtbase5-dev libqt5opengl5-dev qtwebengine5-dev qtbase5-private-dev python2 python3-pip libboost-dev libboost-context-dev libfmt-dev libzip-dev liblz4-dev libmbedtls-dev nlohmann-json3-dev libssl-dev libopus-dev zlib1g-dev libzstd-dev && sudo pip3 install conan
    Fedora sudo dnf install git gcc ninja-build cmake SDL2-devel qt5-qtbase-devel python2 python-pip boost-devel fmt-devel libzip-devel libzstd-devel lz4-devel mbedtls-devel openssl-devel opus-devel zlib-devel && sudo pip install conan
    Gentoo emerge dev-vcs/git =sys-devel/gcc-7.1.0 dev-util/ninja dev-util/cmake media-libs/libsdl2 dev-qt/qtcore dev-qt/qtopengl && sudo pip install conan

Cloning yuzu with Git

Master:

git clone --recursive https://github.com/yuzu-emu/yuzu
cd yuzu

Mainline (no assert):

git clone --recursive https://github.com/yuzu-emu/yuzu-mainline
cd yuzu-mainline

The --recursive option automatically clones the required Git submodules.

Building yuzu in Release Mode (Optimized)

mkdir build && cd build
cmake .. -GNinja
ninja
sudo ninja install # (currently doesn't work, needs to be fixed)

Optionally, you can use cmake-gui .. to adjust various options (e.g. disable the Qt GUI).

Building yuzu in Debug Mode (Slow)

mkdir build && cd build
cmake .. -GNinja -DCMAKE_BUILD_TYPE=Debug
ninja

Building with debug symbols

mkdir build && cd build
cmake .. -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo
ninja

Running without installing

After building, the binaries yuzu and yuzu-cmd (depending on your build options) will end up in build/bin/.

# SDL
cd build/bin/
./yuzu-cmd

# Qt
cd build/bin/
./yuzu

Debugging

cd data
gdb ../build/bin/yuzu            # Start GDB
(gdb) run                        # Run yuzu under GDB
<crash>
(gdb) bt                         # Print a backtrace of the entire callstack to see which codepath the crash occurred on