summary refs log tree commit diff
path: root/pkgs/games/vdrift/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games/vdrift/default.nix')
-rw-r--r--pkgs/games/vdrift/default.nix81
1 files changed, 50 insertions, 31 deletions
diff --git a/pkgs/games/vdrift/default.nix b/pkgs/games/vdrift/default.nix
index 27eef2614263..81b95ddb9e1c 100644
--- a/pkgs/games/vdrift/default.nix
+++ b/pkgs/games/vdrift/default.nix
@@ -1,41 +1,60 @@
-{ stdenv, fetchFromGitHub, fetchsvn, pkgconfig, scons, mesa, SDL2, SDL2_image, libvorbis,
-  bullet, curl, gettext }:
+{ stdenv, fetchFromGitHub, fetchsvn, pkgconfig, scons, mesa, SDL2, SDL2_image
+, libvorbis, bullet, curl, gettext, writeTextFile, writeShellScriptBin
 
-stdenv.mkDerivation rec {
-  version = "2014-10-20";
-  name = "vdrift-${version}";
-
-  src = fetchFromGitHub {
-    owner = "VDrift";
-    repo = "vdrift";
-    rev = version;
-    sha256 = "09yny5qzdrpffq3xhqwfymsracwsxwmdd5xa8bxx9a56hhxbak2l";
-  };
-
-  data = fetchsvn {
+, data ? fetchsvn {
     url = "svn://svn.code.sf.net/p/vdrift/code/vdrift-data";
     rev = 1386;
     sha256 = "0ka6zir9hg0md5p03dl461jkvbk05ywyw233hnc3ka6shz3vazi1";
-  };
+  }
+}:
+let
+  version = "git";
+  bin = stdenv.mkDerivation {
+    name = "vdrift-${version}";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ scons mesa SDL2 SDL2_image libvorbis bullet curl gettext ];
+    src = fetchFromGitHub {
+      owner = "vdrift";
+      repo = "vdrift";
+      rev = "12d444ed18395be8827a21b96cc7974252fce6d1";
+      sha256 = "001wq3c4n9wzxqfpq40b1jcl16sxbqv2zbkpy9rq2wf9h417q6hg";
+    };
 
-  buildPhase = ''
-    cp -r --reflink=auto $data data
-    chmod -R +w data
-    sed -i -e s,/usr/local,$out, SConstruct
-    export CXXFLAGS="$(pkg-config --cflags SDL2_image)"
-    scons
-  '';
-  installPhase = "scons install";
+    nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [ scons mesa SDL2 SDL2_image libvorbis bullet curl gettext ];
 
-  meta = {
-    description = "Car racing game";
-    homepage = http://vdrift.net/;
-    license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = stdenv.lib.platforms.linux;
+    patches = [ ./0001-Ignore-missing-data-for-installation.patch ];
+
+    buildPhase = ''
+      sed -i -e s,/usr/local,$out, SConstruct
+      export CXXFLAGS="$(pkg-config --cflags SDL2_image)"
+      scons -j$NIX_BUILD_CORES
+    '';
+    installPhase = "scons install";
+
+    meta = {
+      description = "Car racing game";
+      homepage = http://vdrift.net/;
+      license = stdenv.lib.licenses.gpl2Plus;
+      maintainers = with stdenv.lib.maintainers; [viric];
+      platforms = stdenv.lib.platforms.linux;
+    };
+  };
+  wrappedName = "vdrift-${version}-with-data-${toString data.rev}";
+in writeTextFile {
+  name = wrappedName;
+  text = ''
+    export VDRIFT_DATA_DIRECTORY="${data}"
+    exec ${bin}/bin/vdrift "$@"
+  '';
+  destination = "/bin/vdrift";
+  executable = true;
+  checkPhase = ''
+    ${stdenv.shell} -n $out/bin/vdrift
+  '';
+} // {
+  meta = bin.meta // {
     hydraPlatforms = [];
   };
+  unwrapped = bin;
+  inherit bin data;
 }