summary refs log tree commit diff
path: root/pkgs/games/quake3
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2016-09-24 12:49:34 +0300
committerNikolay Amiantov <ab@fmap.me>2016-09-24 12:49:59 +0300
commite80b22369dd029cfd4ad9891f245daccba8d1158 (patch)
treed339f135310512340e9d226009f92189f9309207 /pkgs/games/quake3
parentf42e0dc9fd2f20185f0146c09f558ced55004bb5 (diff)
downloadnixpkgs-e80b22369dd029cfd4ad9891f245daccba8d1158.tar
nixpkgs-e80b22369dd029cfd4ad9891f245daccba8d1158.tar.gz
nixpkgs-e80b22369dd029cfd4ad9891f245daccba8d1158.tar.bz2
nixpkgs-e80b22369dd029cfd4ad9891f245daccba8d1158.tar.lz
nixpkgs-e80b22369dd029cfd4ad9891f245daccba8d1158.tar.xz
nixpkgs-e80b22369dd029cfd4ad9891f245daccba8d1158.tar.zst
nixpkgs-e80b22369dd029cfd4ad9891f245daccba8d1158.zip
quake3: refactor wrapper, fix pak collisions
Diffstat (limited to 'pkgs/games/quake3')
-rw-r--r--pkgs/games/quake3/wrapper/builder.sh18
-rw-r--r--pkgs/games/quake3/wrapper/default.nix31
2 files changed, 21 insertions, 28 deletions
diff --git a/pkgs/games/quake3/wrapper/builder.sh b/pkgs/games/quake3/wrapper/builder.sh
deleted file mode 100644
index d5115baa7e6..00000000000
--- a/pkgs/games/quake3/wrapper/builder.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-source $stdenv/setup
-
-mkdir -p $out/baseq3
-for i in $paks; do
-    if test -d "$i/baseq3"; then
-        ln -s "$i/baseq3"/* $out/baseq3/
-    fi
-done
-
-# We add Mesa to the end of $LD_LIBRARY_PATH to provide fallback
-# software rendering.  GCC is needed so that libgcc_s.so can be found
-# when Mesa is used.
-makeWrapper $game/ioquake3.* $out/bin/quake3 \
-    --suffix-each LD_LIBRARY_PATH ':' "$mesa/lib $gcc/lib" \
-    --add-flags "+set fs_basepath $out +set r_allowSoftwareGL 1"
-
-makeWrapper $game/ioq3ded.* $out/bin/quake3-server \
-    --add-flags "+set fs_basepath $out"
diff --git a/pkgs/games/quake3/wrapper/default.nix b/pkgs/games/quake3/wrapper/default.nix
index ae0387ad290..5f65d26140c 100644
--- a/pkgs/games/quake3/wrapper/default.nix
+++ b/pkgs/games/quake3/wrapper/default.nix
@@ -1,22 +1,33 @@
-{ stdenv, fetchurl, mesa, ioquake3, makeWrapper }:
+{ stdenv, buildEnv, lib, fetchurl, mesa_noglu, ioquake3, makeWrapper }:
 
 { paks, name ? (stdenv.lib.head paks).name, description ? "" }:
 
-stdenv.mkDerivation {
-  name = "${name}-${ioquake3.name}";
+let
+  libPath = lib.makeLibraryPath [ mesa_noglu stdenv.cc.cc ];
+  env = buildEnv {
+    name = "quake3-env";
+    paths = [ ioquake3 ] ++ paks;
+  };
 
-  builder = ./builder.sh;
+in stdenv.mkDerivation {
+  name = "${name}-${ioquake3.name}";
 
   nativeBuildInputs = [ makeWrapper ];
-  
-  inherit paks mesa;
 
-  game = ioquake3;
+  buildCommand = ''
+    mkdir -p $out/bin
+
+    # We add Mesa to the end of $LD_LIBRARY_PATH to provide fallback
+    # software rendering. GCC is needed so that libgcc_s.so can be found
+    # when Mesa is used.
+    makeWrapper ${env}/ioquake3.* $out/bin/quake3 \
+      --suffix-each LD_LIBRARY_PATH ':' "${libPath}" \
+      --add-flags "+set fs_basepath ${env} +set r_allowSoftwareGL 1"
 
-  gcc = stdenv.cc.cc;
+    makeWrapper ${env}/ioq3ded.* $out/bin/quake3-server \
+      --add-flags "+set fs_basepath ${env}"
+  '';
 
-  preferLocalBuild = true;
-  
   meta = {
     inherit description;
   };