about summary refs log tree commit diff
path: root/pkgs/games/itch
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2017-09-10 08:01:59 +0200
committeraszlig <aszlig@redmoonstudios.org>2017-09-10 08:14:09 +0200
commit7a7cffce514f8967cb610399890f252cab75eb6a (patch)
tree0b9e102f3f0a4a4266b4b4168d7b5c91f14d1757 /pkgs/games/itch
parent5402b030e2cc78e510414b4604d9528afbec43d2 (diff)
games/invisigun-heroes: Factor out into buildUnity
There are a lot of Unity games out there, so it's a good idea to have a
generic builder just for Unity, which we then can apply to a lot more
games.

Right now this is a pretty basic abstraction which I've only tested with
Invisigun Heroes.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'pkgs/games/itch')
-rw-r--r--pkgs/games/itch/invisigun-heroes.nix44
1 files changed, 7 insertions, 37 deletions
diff --git a/pkgs/games/itch/invisigun-heroes.nix b/pkgs/games/itch/invisigun-heroes.nix
index 04fd06a8..4ab28f92 100644
--- a/pkgs/games/itch/invisigun-heroes.nix
+++ b/pkgs/games/itch/invisigun-heroes.nix
@@ -1,13 +1,12 @@
-{ stdenv, fetchItch, unzip, mesa, xorg, libpulseaudio, libudev
-, gtk2-x11, gdk_pixbuf, glib
-}:
+{ stdenv, lib, buildUnity, fetchItch, unzip, gtk2-x11, gdk_pixbuf, glib }:
 
-stdenv.mkDerivation rec {
-  name = "invisigun-heroes-${version}";
+buildUnity rec {
+  name = "invisigun-heroes";
+  fullName = "Invisigun Heroes";
   version = "1.5.30";
 
   src = fetchItch {
-    name = "${name}.zip";
+    name = "${name}-${version}.zip";
     gameId = 25561;
     uploadId = 208583;
     version = "v${version}";
@@ -18,39 +17,10 @@ stdenv.mkDerivation rec {
     ${unzip}/bin/unzip -qq -d invisigun-heroes "$src" || :
   '';
 
-  arch = if stdenv.system == "x86_64-linux" then "x86_64" else "x86";
-  executable = "Invisigun Heroes.${arch}";
-
   buildPhase = let
-    rpath = stdenv.lib.makeLibraryPath [
-      stdenv.cc.cc mesa xorg.libX11 xorg.libXcursor xorg.libXrandr
-      libpulseaudio libudev
-    ];
-
-    ssRpath = stdenv.lib.makeLibraryPath [
-      stdenv.cc.cc gtk2-x11 gdk_pixbuf glib
-    ];
+    rpath = lib.makeLibraryPath [ stdenv.cc.cc gtk2-x11 gdk_pixbuf glib ];
   in ''
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath ${stdenv.lib.escapeShellArg rpath} "$executable"
-
-    patchelf --set-rpath ${stdenv.lib.escapeShellArg ssRpath} \
+    patchelf --set-rpath ${lib.escapeShellArg rpath} \
       "Invisigun Heroes_Data/Plugins/x86_64/ScreenSelector.so"
   '';
-
-  installPhase = ''
-    install -vD "$executable" "$out/libexec/invisigun-heroes/invisigun-heroes"
-    ln -s "$out/share/invisigun-heroes" "$out/libexec/invisigun-heroes/Data"
-
-    mkdir -p "$out/bin"
-    ln -s "$out/libexec/invisigun-heroes/invisigun-heroes" \
-          "$out/bin/invisigun-heroes"
-
-    mkdir -p "$out/share"
-    cp -vRd "Invisigun Heroes_Data" "$out/share/invisigun-heroes"
-  '';
-
-  dontStrip = true;
-  dontPatchELF = true;
 }