about summary refs log tree commit diff
path: root/nixpkgs/pkgs/games/vdrift/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/games/vdrift/default.nix')
-rw-r--r--nixpkgs/pkgs/games/vdrift/default.nix70
1 files changed, 70 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/vdrift/default.nix b/nixpkgs/pkgs/games/vdrift/default.nix
new file mode 100644
index 000000000000..50fb4af1416a
--- /dev/null
+++ b/nixpkgs/pkgs/games/vdrift/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchsvn
+, pkg-config
+, scons
+, libGLU
+, libGL
+, SDL2
+, SDL2_image
+, libvorbis
+, bullet
+, curl
+, gettext
+, writeShellScriptBin
+
+, data ? fetchsvn {
+    url = "svn://svn.code.sf.net/p/vdrift/code/vdrift-data";
+    rev = "1446";
+    sha256 = "sha256-KEu49GAOfenPyuaUItt6W9pkuqUNpXgmTSFuc7ThljQ=";
+  }
+}:
+let
+  version = "unstable-2021-09-05";
+  bin = stdenv.mkDerivation {
+    pname = "vdrift";
+    inherit version;
+
+    src = fetchFromGitHub {
+      owner = "vdrift";
+      repo = "vdrift";
+      rev = "7e9e00c8612b2014d491f026dd86b03f9fb04dcd";
+      sha256 = "sha256-DrzRF4WzwEXCNALq0jz8nHWZ1oYTEsdrvSYVYI1WkTI=";
+    };
+
+    nativeBuildInputs = [ pkg-config scons ];
+    buildInputs = [ libGLU libGL SDL2 SDL2_image libvorbis bullet curl gettext ];
+
+    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 = lib.licenses.gpl2Plus;
+      maintainers = with lib.maintainers; [ viric ];
+      platforms = lib.platforms.linux;
+    };
+  };
+  wrappedName = "vdrift-${version}-with-data-${toString data.rev}";
+in
+(writeShellScriptBin "vdrift"  ''
+  export VDRIFT_DATA_DIRECTORY="${data}"
+  exec ${bin}/bin/vdrift "$@"
+'').overrideAttrs (_: {
+  name = wrappedName;
+  meta = bin.meta // {
+    hydraPlatforms = [ ];
+  };
+  unwrapped = bin;
+  inherit bin data;
+})