about summary refs log tree commit diff
path: root/pkgs/misc/emulators/retroarch/cores.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/misc/emulators/retroarch/cores.nix')
-rw-r--r--pkgs/misc/emulators/retroarch/cores.nix28
1 files changed, 24 insertions, 4 deletions
diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix
index 84a24e543e683..916ca1687075c 100644
--- a/pkgs/misc/emulators/retroarch/cores.nix
+++ b/pkgs/misc/emulators/retroarch/cores.nix
@@ -83,13 +83,18 @@ let
           }.${stdenv.hostPlatform.parsed.cpu.name} or stdenv.hostPlatform.parsed.cpu.name}"
         ] ++ (args.makeFlags or [ ]);
 
+        coreDir = "${placeholder "out"}/lib/retroarch/cores";
+
         installPhase = ''
-          COREDIR="$out/lib/retroarch/cores"
+          runHook preInstall
+
           mkdir -p $out/bin
-          mkdir -p $COREDIR
-          mv ${d2u args.core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $COREDIR
+          mkdir -p $coreDir
+          mv ${d2u args.core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $coreDir
           makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch-${core} \
-            --add-flags "-L $COREDIR/${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $@"
+            --add-flags "-L $coreDir/${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $@"
+
+          runHook postInstall
         '';
 
         enableParallelBuilding = true;
@@ -530,6 +535,21 @@ in
     preBuild = "cd Libretro";
   };
 
+  mesen-s = mkLibRetroCore {
+    core = "mesens";
+    src = getCoreSrc "mesen-s";
+    version = "unstable-2021-11-22";
+    description = "Port of Mesen-S to libretro";
+    license = lib.licenses.gpl3Only;
+    makefile = "Makefile";
+    preBuild = "cd Libretro";
+    postInstall = ''
+      # fix library name to match libretro-core-info
+      mv $coreDir/mesens_libretro${stdenv.hostPlatform.extensions.sharedLibrary} \
+        $coreDir/mesen-s_libretro${stdenv.hostPlatform.extensions.sharedLibrary}
+    '';
+  };
+
   meteor = mkLibRetroCore {
     core = "meteor";
     description = "Port of Meteor to libretro";