Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 129 lines 3.0 kB view raw
1{ 2 lib, 3 buildDotnetModule, 4 dotnetCorePackages, 5 fetchzip, 6 libX11, 7 libgdiplus, 8 ffmpeg, 9 openal, 10 libsoundio, 11 sndio, 12 pulseaudio, 13 vulkan-loader, 14 glew, 15 libGL, 16 libICE, 17 libSM, 18 libXcursor, 19 libXext, 20 libXi, 21 libXrandr, 22 udev, 23 SDL2, 24 SDL2_mixer, 25}: 26 27buildDotnetModule rec { 28 pname = "ryujinx"; 29 version = "1.1.1401"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml 30 31 src = fetchzip { 32 url = "https://archive.org/download/ryujinx-5dbba-07e-33e-83c-9047dcbb-701c-9655edbbe-89086.tar/Ryujinx-5dbba07e33e83c9047dcbb701c9655edbbe89086.tar.gz"; 33 hash = "sha256-UeJ3KE5e5H9crqroAxjmxYTf/Z4cbj41a6/1HW2nLcA="; 34 }; 35 36 enableParallelBuilding = false; 37 38 dotnet-sdk = dotnetCorePackages.sdk_8_0_4xx-bin; 39 dotnet-runtime = dotnetCorePackages.runtime_8_0; 40 41 nugetDeps = ./deps.json; 42 43 runtimeDeps = [ 44 libX11 45 libgdiplus 46 SDL2_mixer 47 openal 48 libsoundio 49 sndio 50 pulseaudio 51 vulkan-loader 52 ffmpeg 53 udev 54 55 # Avalonia UI 56 glew 57 libICE 58 libSM 59 libXcursor 60 libXext 61 libXi 62 libXrandr 63 64 # Headless executable 65 libGL 66 SDL2 67 ]; 68 69 projectFile = "Ryujinx.sln"; 70 testProjectFile = "src/Ryujinx.Tests/Ryujinx.Tests.csproj"; 71 doCheck = true; 72 73 dotnetFlags = [ 74 "/p:ExtraDefineConstants=DISABLE_UPDATER%2CFORCE_EXTERNAL_BASE_DIR" 75 ]; 76 77 executables = [ 78 "Ryujinx.Headless.SDL2" 79 "Ryujinx" 80 ]; 81 82 makeWrapperArgs = [ 83 # Without this Ryujinx fails to start on wayland. See https://github.com/Ryujinx/Ryujinx/issues/2714 84 "--set SDL_VIDEODRIVER x11" 85 ]; 86 87 preInstall = '' 88 # workaround for https://github.com/Ryujinx/Ryujinx/issues/2349 89 mkdir -p $out/lib/sndio-6 90 ln -s ${sndio}/lib/libsndio.so $out/lib/sndio-6/libsndio.so.6 91 ''; 92 93 preFixup = '' 94 mkdir -p $out/share/{applications,icons/hicolor/scalable/apps,mime/packages} 95 pushd ${src}/distribution/linux 96 97 install -D ./Ryujinx.desktop $out/share/applications/Ryujinx.desktop 98 install -D ./Ryujinx.sh $out/bin/Ryujinx.sh 99 install -D ./mime/Ryujinx.xml $out/share/mime/packages/Ryujinx.xml 100 install -D ../misc/Logo.svg $out/share/icons/hicolor/scalable/apps/Ryujinx.svg 101 102 ln -s $out/bin/Ryujinx $out/bin/ryujinx 103 104 popd 105 ''; 106 107 meta = with lib; { 108 homepage = "https://ryujinx.org/"; 109 changelog = "https://github.com/Ryujinx/Ryujinx/wiki/Changelog"; 110 description = "Experimental Nintendo Switch Emulator written in C#"; 111 longDescription = '' 112 Ryujinx is an open-source Nintendo Switch emulator, created by gdkchan, 113 written in C#. This emulator aims at providing excellent accuracy and 114 performance, a user-friendly interface and consistent builds. It was 115 written from scratch and development on the project began in September 116 2017. 117 ''; 118 license = licenses.mit; 119 maintainers = with maintainers; [ 120 jk 121 artemist 122 ]; 123 platforms = [ 124 "x86_64-linux" 125 "aarch64-linux" 126 ]; 127 mainProgram = "Ryujinx"; 128 }; 129}