at 18.09-beta 46 lines 1.4 kB view raw
1{ stdenv, lib, runCommand, buildEnv, makeWrapper, makeDesktopItem, gamePacks, libstdcxx5, SDL, openal }: 2 3let 4 game = buildEnv { 5 name = "ut2004-game"; 6 paths = gamePacks; 7 ignoreCollisions = true; 8 pathsToLink = [ "/" "/System" ]; 9 postBuild = '' 10 ln -s ${lib.getLib SDL}/lib/libSDL-1.2.so.0 $out/System 11 ln -s ${lib.getLib openal}/lib/libopenal.so $out/System/openal.so 12 for i in $out/System/*-bin; do 13 path="$(readlink -f "$i")" 14 rm "$i" 15 cp "$path" "$i" 16 chmod +w "$i" 17 patchelf \ 18 --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \ 19 --set-rpath "$out/System:${lib.makeLibraryPath [ libstdcxx5 ]}" \ 20 "$i" 21 done 22 ''; 23 }; 24 25 desktop = makeDesktopItem { 26 name = "ut2004"; 27 desktopName = "Unreal Tournament 2004"; 28 comment = "A first-person shooter video game developed by Epic Games and Digital Extreme"; 29 genericName = "First-person shooter"; 30 categories = "Application;Game;"; 31 exec = "ut2004"; 32 }; 33 34in runCommand "ut2004" { 35 nativeBuildInputs = [ makeWrapper ]; 36} '' 37 mkdir -p $out/bin 38 for i in ${game}/System/*-bin; do 39 name="$(basename "$i")" 40 makeWrapper $i $out/bin/''${name%-bin} \ 41 --run "cd ${game}/System" 42 done 43 44 mkdir -p $out/share/applications 45 ln -s ${desktop}/share/applications/* $out/share/applications 46''