mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2024-11-23 11:00:09 +00:00
Convert ugly lists to tables, formatting, HTTPS
parent
abe3c002c6
commit
5169fca9b3
@ -2,56 +2,68 @@
|
|||||||
|
|
||||||
You'll need to download and install the following to build yuzu:
|
You'll need to download and install the following to build yuzu:
|
||||||
|
|
||||||
- [SDL2](https://www.libsdl.org/download-2.0.php)
|
* [SDL2](https://www.libsdl.org/download-2.0.php):
|
||||||
- Arch: `pacman -S sdl2`
|
| Distro | Commands
|
||||||
- Ubuntu: `apt-get install libsdl2-2.0-0 libsdl2-dev`
|
| ------ | ----------------
|
||||||
- Debian: `apt-get install sdl2 libsdl2-2.0-0 libsdl2-dev`
|
| Arch | `pacman -S sdl2`
|
||||||
- Fedora: `dnf install SDL2-devel`
|
| Ubuntu | `apt-get install libsdl2-2.0-0 libsdl2-dev`
|
||||||
- Gentoo: `emerge media-libs/libsdl2`
|
| Debian | `apt-get install sdl2 libsdl2-2.0-0 libsdl2-dev`
|
||||||
- [Qt](http://qt-project.org/downloads)
|
| Fedora | `dnf install SDL2-devel`
|
||||||
- Arch: `pacman -S qt5`
|
| Gentoo | `emerge media-libs/libsdl2`
|
||||||
- Debian: `apt-get install qtbase5-dev libqt5opengl5-dev`
|
* [Qt](https://qt-project.org/downloads):
|
||||||
- Fedora: `dnf install qt5-qtbase qt5-qtbase-devel`
|
| Distro | Commands
|
||||||
- Gentoo: `emerge dev-qt/qtcore dev-qt/qtopengl`
|
| ------ | ---------------
|
||||||
- GCC v7+ (for C++17 support) & misc
|
| Arch | `pacman -S qt5`
|
||||||
- Arch: `pacman -S base-devel`
|
| Debian | `apt-get install qtbase5-dev libqt5opengl5-dev`
|
||||||
- Debian: `apt-get install build-essential libboost-all-dev`
|
| Fedora | `dnf install qt5-qtbase qt5-qtbase-devel`
|
||||||
- Fedora: `dnf install gcc`
|
| Gentoo | `emerge dev-qt/qtcore dev-qt/qtopengl`
|
||||||
- Gentoo: `emerge =sys-devel/gcc-7.1.0`
|
* GCC v7+ (for C++17 support) & misc:
|
||||||
- [CMake](http://www.cmake.org/) 3.6+
|
| Distro | Commands
|
||||||
- Arch: `pacman -S cmake`
|
| ------ | ----------------------
|
||||||
- Debian: `apt-get install cmake`
|
| Arch | `pacman -S base-devel`
|
||||||
- Fedora: `dnf install cmake`
|
| Debian | `apt-get install build-essential libboost-all-dev`
|
||||||
- Gentoo: `emerge dev-util/cmake`
|
| Fedora | `dnf install gcc`
|
||||||
- [Python2](https://www.python.org/download/releases/2.7/) 2.7
|
| Gentoo | `emerge =sys-devel/gcc-7.1.0`
|
||||||
- Arch: `pacman -S python2
|
* [CMake](https://www.cmake.org/) 3.6+:
|
||||||
- Debian `apt install python2
|
| Distro | Commands
|
||||||
- Fedora ` dnf install python2
|
| ------ | -----------------
|
||||||
|
| Arch | `pacman -S cmake`
|
||||||
|
| Debian | `apt-get install cmake`
|
||||||
|
| Fedora | `dnf install cmake`
|
||||||
|
| Gentoo | `emerge dev-util/cmake`
|
||||||
|
* [Python2](https://www.python.org/download/releases/2.7/) 2.7:
|
||||||
|
| Distro | Commands
|
||||||
|
| ------ | ------------------
|
||||||
|
| Arch | `pacman -S python2`
|
||||||
|
| Debian | `apt install python2`
|
||||||
|
| Fedora | `dnf install python2`
|
||||||
|
|
||||||
Note: Depending on your distro, the version of CMake you get may not be what's required to build yuzu. Check with cmake --version. Version 3.6 or greater is required for you to be able to build!
|
Note: Depending on your distro, the version of CMake you get may not be what's required to build yuzu. Check with `cmake --version`. Version 3.6 or greater is required for you to be able to build!
|
||||||
|
|
||||||
- [Clang](https://github.com/llvm-mirror/clang) 3.8 (optional build alternative)
|
* [Clang](https://github.com/llvm-mirror/clang) 3.8 (optional build alternative):
|
||||||
- Arch: `pacman -S clang`, `libc++` is in the AUR. Use yay to install it.
|
| Distro | Commands
|
||||||
- Debian: `apt-get install clang libc++-dev` (in some distros, clang-3.8).
|
| ------ | ------------------
|
||||||
- Gentoo: `emerge sys-devel/clang sys-libs/libcxx`
|
| Arch | `pacman -S clang`, `libc++` is in the AUR. Use `yay` to install it.
|
||||||
|
| Debian | `apt-get install clang libc++-dev` (in some distros, clang-3.8)
|
||||||
|
| Gentoo | `emerge sys-devel/clang sys-libs/libcxx`
|
||||||
|
|
||||||
### Cloning yuzu with Git
|
### Cloning yuzu with Git
|
||||||
|
|
||||||
**Master:**
|
**Master:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone --recursive https://github.com/yuzu-emu/yuzu
|
git clone --recursive https://github.com/yuzu-emu/yuzu
|
||||||
cd yuzu
|
cd yuzu
|
||||||
```
|
```
|
||||||
|
|
||||||
**Mainline (no assert):**
|
**Mainline (no assert):**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone --recursive https://github.com/yuzu-emu/yuzu-mainline
|
git clone --recursive https://github.com/yuzu-emu/yuzu-mainline
|
||||||
cd yuzu-mainline
|
cd yuzu-mainline
|
||||||
```
|
```
|
||||||
|
|
||||||
The `--recursive` option automatically clones the required Git submodules too.
|
The `--recursive` option automatically clones the required Git submodules.
|
||||||
|
|
||||||
### Building yuzu in Debug Mode (Slow)
|
### Building yuzu in Debug Mode (Slow)
|
||||||
|
|
||||||
@ -63,42 +75,42 @@ cmake ../
|
|||||||
make
|
make
|
||||||
sudo make install
|
sudo make install
|
||||||
```
|
```
|
||||||
Note: you can use **make -jN** where N is the number of processors available to accelerate the building
|
Note: You can use **make -jN** where N is the number of processors available to accelerate building.
|
||||||
|
|
||||||
Optionally, you can use `cmake -i ..` to adjust various options (e.g. disable the Qt GUI).
|
Optionally, you can use `cmake -i ..` to adjust various options (e.g. disable the Qt GUI).
|
||||||
|
|
||||||
#### Using clang
|
#### Using clang
|
||||||
|
|
||||||
Note: It is important you use libc++ vs. , otherwise your build will likely fail. libc++ is not 100% complete on GNU/Linux, but works well for this build. The libstdc++ std::string is a different data structure than the libc++ std::string. See: [LLVM.org](https://llvm.org/svn/llvm-project/www-releases/trunk/3.8.0/projects/libcxx/docs/UsingLibcxx.html). If libc++ is not used, some warnings are treated as errors. Using clang is only really recommended for users not using GCC >= 5. Also see [Clang Comparison](http://clang.llvm.org/comparison.html).
|
Note: It is important you use libc++ vs., otherwise your build will likely fail. libc++ is not 100% complete on GNU/Linux, but works well for this build. The libstdc++ std::string is a different data structure than the libc++ std::string. See: [LLVM.org](https://llvm.org/svn/llvm-project/www-releases/trunk/3.8.0/projects/libcxx/docs/UsingLibcxx.html). If libc++ is not used, some warnings are treated as errors. Using clang is only really recommended for users not using GCC >= 5. Also see [Clang Comparison](https://clang.llvm.org/comparison.html).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir build && cd build
|
mkdir build && cd build
|
||||||
cmake -DCMAKE_CXX_COMPILER=clang++-3.8 \
|
cmake -DCMAKE_CXX_COMPILER=clang++-3.8 \
|
||||||
-DCMAKE_C_COMPILER=clang-3.8 \
|
-DCMAKE_C_COMPILER=clang-3.8 \
|
||||||
-DCMAKE_CXX_FLAGS="-O2 -g -stdlib=libc++" \
|
-DCMAKE_CXX_FLAGS="-O2 -g -stdlib=libc++" \
|
||||||
..
|
..
|
||||||
make
|
make
|
||||||
sudo make install # (currently doesn't work, needs to be fixed)
|
sudo make install # (currently doesn't work, needs to be fixed)
|
||||||
```
|
```
|
||||||
|
|
||||||
Debian/Ubuntu: Owing to bug [#808086](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808086) the build might
|
Debian/Ubuntu: Owing to bug [#808086](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808086) the build might
|
||||||
fail. To have it build, add the following after line 1938 of `/usr/include/c++/v1/string`. (see discussion on
|
fail. To have it build, add the following after line 1938 of `/usr/include/c++/v1/string`. (see discussion on
|
||||||
[StackOverflow](http://stackoverflow.com/questions/37096062/get-a-basic-c-program-to-compile-using-clang-on-ubuntu-16)
|
[StackOverflow](https://stackoverflow.com/questions/37096062/get-a-basic-c-program-to-compile-using-clang-on-ubuntu-16)
|
||||||
for more details.)
|
for more details.)
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
#if _LIBCPP_STD_VER <= 14
|
#if _LIBCPP_STD_VER <= 14
|
||||||
_NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)
|
_NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)
|
||||||
#else
|
#else
|
||||||
_NOEXCEPT
|
_NOEXCEPT
|
||||||
#endif
|
#endif
|
||||||
```
|
```
|
||||||
|
|
||||||
Additionally, on Ubuntu, do:
|
Additionally, on Ubuntu, do:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt-get install libc++abi-dev && sudo ln -s /usr/include/libcxxabi/__cxxabi_config.h /usr/include/c++/v1/__cxxabi_config.h
|
sudo apt-get install libc++abi-dev && sudo ln -s /usr/include/libcxxabi/__cxxabi_config.h /usr/include/c++/v1/__cxxabi_config.h
|
||||||
```
|
```
|
||||||
|
|
||||||
### Building yuzu in Release Mode (Optimized)
|
### Building yuzu in Release Mode (Optimized)
|
||||||
|
|
||||||
@ -120,22 +132,22 @@ make
|
|||||||
|
|
||||||
After building, the binaries `yuzu` and `yuzu-cmd` (depending on your build options) will end up in `build/bin/`.
|
After building, the binaries `yuzu` and `yuzu-cmd` (depending on your build options) will end up in `build/bin/`.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# SDL
|
# SDL
|
||||||
cd build/bin/
|
cd build/bin/
|
||||||
./yuzu-cmd
|
./yuzu-cmd
|
||||||
|
|
||||||
# Qt
|
# Qt
|
||||||
cd build/bin/
|
cd build/bin/
|
||||||
./yuzu
|
./yuzu
|
||||||
```
|
```
|
||||||
|
|
||||||
### Debugging
|
### Debugging
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd data
|
cd data
|
||||||
gdb ../build/bin/yuzu # Start GDB
|
gdb ../build/bin/yuzu # Start GDB
|
||||||
(gdb) run # Run yuzu under GDB
|
(gdb) run # Run yuzu under GDB
|
||||||
<crash>
|
<crash>
|
||||||
(gdb) bt # Print a backtrace of the entire callstack to see which codepath the crash occurred on
|
(gdb) bt # Print a backtrace of the entire callstack to see which codepath the crash occurred on
|
||||||
```
|
```
|
Loading…
Reference in New Issue
Block a user