From dd14778561f276d667109af0f2cb44f998207fb7 Mon Sep 17 00:00:00 2001 From: uranuspucksaxophone <84784521+uranuspucksaxophone@users.noreply.github.com> Date: Sat, 17 Sep 2022 14:53:46 +0200 Subject: [PATCH] [docs] Explain how to update local cemu repo + General fixes (#227) Co-authored-by: Crementif <26669564+Crementif@users.noreply.github.com> --- BUILD.md | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/BUILD.md b/BUILD.md index 67f55a94..6141d6a5 100644 --- a/BUILD.md +++ b/BUILD.md @@ -12,11 +12,11 @@ Instructions: 1. Run `git clone --recursive https://github.com/cemu-project/Cemu` 2. Launch `Cemu/generate_vs_solution.bat`. - - If you installed VS to a custom location or use VS 2019, you may need to manually change the path inside the .bat file -3. Wait until it's done, then open `Cemu/build/Cemu.sln` in Visual Studio + - If you installed VS to a custom location or use VS 2019, you may need to manually change the path inside the .bat file. +3. Wait until it's done, then open `Cemu/build/Cemu.sln` in Visual Studio. 4. Then build the solution and once finished you can run and debug it, or build it and check the /bin folder for the final Cemu_release.exe. -You can also skip steps 3-5 and open the root folder of the cloned repo directly in Visual Studio (as a folder) and use the built-in cmake support but be warned that cmake support in VS can be a bit finicky. +You can also skip steps 3-5 and open the root folder of the cloned repo directly in Visual Studio (as a folder) and use the built-in CMake support but be warned that cmake support in VS can be a bit finicky. ## Linux @@ -25,14 +25,15 @@ To compile Cemu, a recent enough compiler and STL with C++20 support is required ### Installing dependencies #### For Ubuntu and derivatives: -`sudo apt install -y git curl cmake ninja-build nasm libgtk-3-dev libsecret-1-dev libgcrypt20-dev libsystemd-dev freeglut3-dev libpulse-dev` -Additionally, for ubuntu 20.04 only: +`sudo apt install -y git curl cmake ninja-build nasm libgtk-3-dev libsecret-1-dev libgcrypt20-dev libsystemd-dev freeglut3-dev libpulse-dev` + +*Additionally, for Ubuntu 22.04 only:* - `sudo apt install -y clang-12` - At step 3 while building, use `cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DCMAKE_C_COMPILER=/usr/bin/clang-12 -DCMAKE_CXX_COMPILER=/usr/bin/clang++-12 -G Ninja -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja` #### For Arch and derivatives: -`sudo pacman -S git cmake clang ninja nasm base-devel linux-headers gtk3 libsecret libgcrypt systemd freeglut zip libpulse` +`sudo pacman -S git cmake clang ninja nasm base-devel linux-headers gtk3 libsecret libgcrypt systemd freeglut zip unzip libpulse` #### For Fedora and derivatives: `sudo dnf install git cmake clang ninja-build nasm kernel-headers gtk3-devel libsecret-devel libgcrypt-devel systemd-devel freeglut-devel perl-core zlib-devel cubeb-devel` @@ -56,4 +57,11 @@ You can use it by replacing the step 3 with the following: - If step 3 is still failing or if you're not able to find the cause, please make an issue on our Github about it! - If step 4 gives you an error that contains something like `main.cpp.o: in function 'std::__cxx11::basic_string...`, you likely are experiencing a clang-14 issue. This can only be fixed by either lowering the clang version or using GCC, see below. - If step 4 gives you a different error, you could report it to this repo or try using GCC. Just make sure your standard library and compilers are updated since Cemu uses a lot of modern features! -- If step 4 gives you undefined libdecor_xx, you are likely experiencing an issue with sdl2 package that comes with vcpkg. Delete sdl2 from vcpkg.json in source file and recompile +- If step 4 gives you undefined libdecor_xx, you are likely experiencing an issue with sdl2 package that comes with vcpkg. Delete sdl2 from vcpkg.json in source file and recompile. + +## Updating Cemu and source code +1. To update your Cemu local repository, use the command `git pull --recurse-submodules` (run this command on the Cemu root). + - This should update your local copy of Cemu and all of its dependencies. +2. Then, you can rebuild Cemu using the steps listed above, according to whether you use Linux or Windows. + +If CMake complains about Cemu already being compiled or another similar error, try deleting the `CMakeCache.txt` file inside the `build` folder and retry building.