summary refs log tree commit diff
path: root/pkgs/games/warsow/engine.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games/warsow/engine.nix')
-rw-r--r--pkgs/games/warsow/engine.nix39
1 files changed, 20 insertions, 19 deletions
diff --git a/pkgs/games/warsow/engine.nix b/pkgs/games/warsow/engine.nix
index 19c368671e6..e796c589290 100644
--- a/pkgs/games/warsow/engine.nix
+++ b/pkgs/games/warsow/engine.nix
@@ -1,15 +1,9 @@
-{ stdenv, lib, fetchurl, cmake, libogg, libvorbis, libtheora, curl, freetype
+{ stdenv, lib, substituteAll, fetchurl, cmake, libogg, libvorbis, libtheora, curl, freetype
 , libjpeg, libpng, SDL2, libGL, openal, zlib
 }:
 
-let
-  # The game loads all those via dlopen().
-  libs = lib.mapAttrs (name: x: lib.getLib x) {
-    inherit zlib curl libpng libjpeg libogg libvorbis libtheora freetype;
-  };
-
-in stdenv.mkDerivation (libs // rec {
-  name = "warsow-engine-${version}";
+stdenv.mkDerivation rec {
+  pname = "warsow-engine";
   version = "2.1.0";
 
   src = fetchurl {
@@ -17,6 +11,13 @@ in stdenv.mkDerivation (libs // rec {
     sha256 = "0fj5k7qpf6far8i1xhqxlpfjch10zj26xpilhp95aq2yiz08pj4r";
   };
 
+  patches = [
+    (substituteAll {
+      src = ./libpath.patch;
+      inherit zlib curl libpng libjpeg libogg libvorbis libtheora freetype;
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [
@@ -24,30 +25,30 @@ in stdenv.mkDerivation (libs // rec {
     libpng
   ];
 
-  patches = [ ./libpath.patch ];
-  postPatch = ''
-    cd source/source
-    substituteAllInPlace gameshared/q_arch.h
-  '';
-
   cmakeFlags = [ "-DQFUSION_GAME=Warsow" ];
 
-  enableParallelBuilding = true;
+  preConfigure = ''
+    cd source/source
+  '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/lib
     cp -r libs $out/lib/warsow
     for i in warsow.* wsw_server.* wswtv_server.*; do
       install -Dm755 "$i" "$out/bin/''${i%.*}"
     done
+
+    runHook postInstall
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Multiplayer FPS game designed for competitive gaming (engine only)";
     homepage = "http://www.warsow.net";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ astsmtl abbradar ];
     platforms = platforms.linux;
     broken = stdenv.isAarch64;
   };
-})
+}