zipline: refactor environment variables (#377101)
[NixPkgs.git] / pkgs / by-name / vd / vdrift / package.nix
blob0d976def8333f9c5243bd2288a96f13a7b3d134b
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   fetchsvn,
6   pkg-config,
7   scons,
8   libGLU,
9   libGL,
10   SDL2,
11   SDL2_image,
12   libvorbis,
13   bullet,
14   curl,
15   gettext,
16   writeShellScriptBin,
18   data ? fetchsvn {
19     url = "svn://svn.code.sf.net/p/vdrift/code/vdrift-data";
20     rev = "1446";
21     sha256 = "sha256-KEu49GAOfenPyuaUItt6W9pkuqUNpXgmTSFuc7ThljQ=";
22   },
24 let
25   version = "unstable-2021-09-05";
26   bin = stdenv.mkDerivation {
27     pname = "vdrift";
28     inherit version;
30     src = fetchFromGitHub {
31       owner = "vdrift";
32       repo = "vdrift";
33       rev = "7e9e00c8612b2014d491f026dd86b03f9fb04dcd";
34       sha256 = "sha256-DrzRF4WzwEXCNALq0jz8nHWZ1oYTEsdrvSYVYI1WkTI=";
35     };
37     postPatch = ''
38       substituteInPlace src/SConscript \
39         --replace-fail sdl2-config "${lib.getExe' (lib.getDev SDL2) "sdl2-config"}"
40     '';
42     nativeBuildInputs = [
43       pkg-config
44       scons
45     ];
46     buildInputs = [
47       libGLU
48       libGL
49       SDL2
50       SDL2_image
51       libvorbis
52       bullet
53       curl
54       gettext
55     ];
57     patches = [
58       ./0001-Ignore-missing-data-for-installation.patch
59     ];
61     buildPhase = ''
62       runHook preBuild
63       substituteInPlace SConstruct \
64         --replace-fail /usr/local "$out" \
65         --replace-fail pkg-config "${stdenv.cc.targetPrefix}pkg-config"
66       export CXXFLAGS="$(${stdenv.cc.targetPrefix}pkg-config --cflags SDL2_image)"
67       scons -j$NIX_BUILD_CORES
68       runHook postBuild
69     '';
71     meta = {
72       description = "Car racing game";
73       mainProgram = "vdrift";
74       homepage = "https://vdrift.net/";
75       license = lib.licenses.gpl2Plus;
76       maintainers = [ ];
77       platforms = lib.platforms.linux;
78     };
79   };
80   wrappedName = "vdrift-${version}-with-data-${toString data.rev}";
82 (writeShellScriptBin "vdrift" ''
83   export VDRIFT_DATA_DIRECTORY="${data}"
84   exec ${bin}/bin/vdrift "$@"
85 '').overrideAttrs
86   (_: {
87     name = wrappedName;
88     meta = bin.meta // {
89       hydraPlatforms = [ ];
90     };
91     unwrapped = bin;
92     inherit bin data;
93   })