diff options
Diffstat (limited to 'pkgs/games/vdrift/default.nix')
-rw-r--r-- | pkgs/games/vdrift/default.nix | 81 |
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; } |