about summary refs log tree commit diff
path: root/pkgs/applications/emulators/retroarch/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/emulators/retroarch/default.nix')
-rw-r--r--pkgs/applications/emulators/retroarch/default.nix38
1 files changed, 32 insertions, 6 deletions
diff --git a/pkgs/applications/emulators/retroarch/default.nix b/pkgs/applications/emulators/retroarch/default.nix
index 5512fa276e825..5c18d47daa8a5 100644
--- a/pkgs/applications/emulators/retroarch/default.nix
+++ b/pkgs/applications/emulators/retroarch/default.nix
@@ -2,12 +2,15 @@
 , stdenv
 , nixosTests
 , enableNvidiaCgToolkit ? false
+, withAssets ? false
+, withCoreInfo ? false
 , withGamemode ? stdenv.isLinux
 , withVulkan ? stdenv.isLinux
 , withWayland ? stdenv.isLinux
 , alsa-lib
 , dbus
 , fetchFromGitHub
+, fetchpatch
 , ffmpeg_4
 , flac
 , freetype
@@ -25,11 +28,12 @@
 , libxml2
 , libXxf86vm
 , makeWrapper
-, mbedtls
+, mbedtls_2
 , mesa
 , nvidia_cg_toolkit
 , pkg-config
 , python3
+, retroarch-assets
 , SDL2
 , substituteAll
 , udev
@@ -55,9 +59,15 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    (substituteAll {
-      src = ./use-fixed-path-for-libretro_core_info.patch;
-      libretro_info_path = libretro-core-info;
+    ./use-default-values-for-libretro_info_path-assets_directory.patch
+    # TODO: remove those two patches in the next RetroArch release
+    (fetchpatch {
+      url = "https://github.com/libretro/RetroArch/commit/894c44c5ea7f1eada9207be3c29e8d5c0a7a9e1f.patch";
+      hash = "sha256-ThB6jd9pmsipT8zjehz7znK/s0ofHHCJeEYBKur6sO8=";
+    })
+    (fetchpatch {
+      url = "https://github.com/libretro/RetroArch/commit/c5bfd52159cf97312bb28fc42203c39418d1bbbd.patch";
+      hash = "sha256-rb1maAvCSUgq2VtJ67iqUY+Fz00Fchl8YGG0EPm0+F0=";
     })
   ];
 
@@ -72,7 +82,7 @@ stdenv.mkDerivation rec {
     libGL
     libGLU
     libxml2
-    mbedtls
+    mbedtls_2
     python3
     SDL2
     zlib
@@ -100,9 +110,18 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--disable-update_cores"
     "--disable-builtinmbedtls"
+    "--enable-systemmbedtls"
     "--disable-builtinzlib"
     "--disable-builtinflac"
   ] ++
+  lib.optionals withAssets [
+    "--disable-update_assets"
+    "--with-assets_dir=${retroarch-assets}/share"
+  ] ++
+  lib.optionals withCoreInfo [
+    "--disable-update_core_info"
+    "--with-core_info_dir=${libretro-core-info}/share"
+  ] ++
   lib.optionals stdenv.isLinux [
     "--enable-dbus"
     "--enable-egl"
@@ -112,9 +131,16 @@ stdenv.mkDerivation rec {
   postInstall = lib.optionalString (runtimeLibs != [ ]) ''
     wrapProgram $out/bin/retroarch \
       --prefix LD_LIBRARY_PATH ':' ${lib.makeLibraryPath runtimeLibs}
+  '' +
+  lib.optionalString enableNvidiaCgToolkit ''
+    wrapProgram $out/bin/retroarch-cg2glsl \
+      --prefix PATH ':' ${lib.makeBinPath [ nvidia_cg_toolkit ]}
   '';
 
-  preFixup = "rm $out/bin/retroarch-cg2glsl";
+  preFixup = lib.optionalString (!enableNvidiaCgToolkit) ''
+    rm $out/bin/retroarch-cg2glsl
+    rm $out/share/man/man6/retroarch-cg2glsl.6*
+  '';
 
   passthru.tests = nixosTests.retroarch;