cemu: init at 2.0-10

+133
+12
pkgs/applications/emulators/cemu/cmakelists.patch
··· 1 + diff --git a/CMakeLists.txt b/CMakeLists.txt 2 + index 4b2b789..48d9be0 100644 3 + --- a/CMakeLists.txt 4 + +++ b/CMakeLists.txt 5 + @@ -92,6 +92,7 @@ find_package(pugixml REQUIRED) 6 + find_package(RapidJSON REQUIRED) 7 + find_package(Boost COMPONENTS program_options filesystem nowide REQUIRED) 8 + find_package(libzip REQUIRED) 9 + +find_package(SPIRV-Tools-opt REQUIRED) 10 + find_package(glslang REQUIRED) 11 + find_package(ZLIB REQUIRED) 12 + find_package(zstd MODULE REQUIRED) # MODULE so that zstd::zstd is available
+119
pkgs/applications/emulators/cemu/default.nix
··· 1 + { lib, stdenv, fetchFromGitHub 2 + , addOpenGLRunpath 3 + , wrapGAppsHook 4 + , cmake 5 + , glslang 6 + , nasm 7 + , pkg-config 8 + 9 + , SDL2 10 + , boost 11 + , cubeb 12 + , curl 13 + , fmt_9 14 + , glm 15 + , gtk3 16 + , imgui 17 + , libpng 18 + , libzip 19 + , libXrender 20 + , pugixml 21 + , rapidjson 22 + , vulkan-headers 23 + , wxGTK32 24 + , zarchive 25 + 26 + , vulkan-loader 27 + }: 28 + 29 + stdenv.mkDerivation rec { 30 + pname = "cemu"; 31 + version = "2.0-10"; 32 + 33 + src = fetchFromGitHub { 34 + owner = "cemu-project"; 35 + repo = "Cemu"; 36 + rev = "v${version}"; 37 + hash = "sha256-GJA/lJJqShuHeYirBW1kyVsU44kMpmAn916PSGOnKkY="; 38 + }; 39 + 40 + patches = [ 41 + # glslangTargets want SPIRV-Tools-opt to be defined: 42 + # > The following imported targets are referenced, but are missing: 43 + # > SPIRV-Tools-opt 44 + ./cmakelists.patch 45 + ]; 46 + 47 + nativeBuildInputs = [ 48 + addOpenGLRunpath 49 + wrapGAppsHook 50 + cmake 51 + glslang 52 + nasm 53 + pkg-config 54 + ]; 55 + 56 + buildInputs = [ 57 + SDL2 58 + boost 59 + cubeb 60 + curl 61 + fmt_9 62 + glm 63 + gtk3 64 + imgui 65 + libpng 66 + libzip 67 + libXrender 68 + pugixml 69 + rapidjson 70 + vulkan-headers 71 + wxGTK32 72 + zarchive 73 + ]; 74 + 75 + cmakeFlags = [ 76 + "-DCMAKE_C_FLAGS_RELEASE=-DNDEBUG" 77 + "-DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG" 78 + "-DENABLE_VCPKG=OFF" 79 + 80 + # PORTABLE: 81 + # "All data created and maintained by Cemu will be in the directory where the executable file is located" 82 + "-DPORTABLE=OFF" 83 + ]; 84 + 85 + preConfigure = '' 86 + rm -rf dependencies/imgui 87 + ln -s ${imgui}/include/imgui dependencies/imgui 88 + ''; 89 + 90 + installPhase = '' 91 + runHook preInstall 92 + 93 + install -Dm755 ../bin/Cemu_release $out/bin/Cemu 94 + ln -s $out/bin/Cemu $out/bin/cemu 95 + 96 + mkdir -p $out/share/applications 97 + substitute ../dist/linux/info.cemu.Cemu.desktop $out/share/applications/info.cemu.Cemu.desktop \ 98 + --replace "Exec=Cemu" "Exec=$out/bin/Cemu" 99 + 100 + install -Dm644 ../dist/linux/info.cemu.Cemu.metainfo.xml -t $out/share/metainfo 101 + install -Dm644 ../src/resource/logo_icon.png $out/share/icons/hicolor/128x128/apps/info.cemu.Cemu.png 102 + 103 + runHook postInstall 104 + ''; 105 + 106 + preFixup = let 107 + libs = [ vulkan-loader ] ++ cubeb.passthru.backendLibs; 108 + in '' 109 + gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath libs}") 110 + ''; 111 + 112 + meta = with lib; { 113 + description = "Cemu is a Wii U emulator"; 114 + homepage = "https://cemu.info"; 115 + license = licenses.mpl20; 116 + platforms = [ "x86_64-linux" ]; 117 + maintainers = with maintainers; [ zhaofengli baduhai ]; 118 + }; 119 + }
+2
pkgs/top-level/all-packages.nix
··· 1503 1503 1504 1504 cdemu-daemon = callPackage ../applications/emulators/cdemu/daemon.nix { }; 1505 1505 1506 + cemu = callPackage ../applications/emulators/cemu { }; 1507 + 1506 1508 cen64 = callPackage ../applications/emulators/cen64 { }; 1507 1509 1508 1510 citra-canary = callPackage ../applications/emulators/citra {