diff options
Diffstat (limited to 'nixpkgs/pkgs/games/quake3/wrapper/default.nix')
-rw-r--r-- | nixpkgs/pkgs/games/quake3/wrapper/default.nix | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/quake3/wrapper/default.nix b/nixpkgs/pkgs/games/quake3/wrapper/default.nix new file mode 100644 index 000000000000..a1a5bfb03d26 --- /dev/null +++ b/nixpkgs/pkgs/games/quake3/wrapper/default.nix @@ -0,0 +1,34 @@ +{ stdenv, buildEnv, lib, libGL, ioquake3, makeWrapper }: + +{ paks, name ? (lib.head paks).name, description ? "" }: + +let + libPath = lib.makeLibraryPath [ libGL stdenv.cc.cc ]; + env = buildEnv { + name = "quake3-env"; + paths = [ ioquake3 ] ++ paks; + }; + +in stdenv.mkDerivation { + name = "${name}-${ioquake3.name}"; + + nativeBuildInputs = [ makeWrapper ]; + + 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}/bin/ioquake3* $out/bin/quake3 \ + --suffix-each LD_LIBRARY_PATH ':' "${libPath}" \ + --add-flags "+set fs_basepath ${env} +set r_allowSoftwareGL 1" + + makeWrapper ${env}/bin/ioq3ded* $out/bin/quake3-server \ + --add-flags "+set fs_basepath ${env}" + ''; + + meta = { + inherit description; + }; +} |