From 7a7cffce514f8967cb610399890f252cab75eb6a Mon Sep 17 00:00:00 2001 From: aszlig Date: Sun, 10 Sep 2017 08:01:59 +0200 Subject: 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 --- pkgs/games/itch/invisigun-heroes.nix | 44 ++++++------------------------------ 1 file changed, 7 insertions(+), 37 deletions(-) (limited to 'pkgs/games/itch') 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; } -- cgit 1.4.1