diff options
Diffstat (limited to 'pkgs/games/warsow/engine.nix')
-rw-r--r-- | pkgs/games/warsow/engine.nix | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/games/warsow/engine.nix b/pkgs/games/warsow/engine.nix new file mode 100644 index 00000000000..12832f2a439 --- /dev/null +++ b/pkgs/games/warsow/engine.nix @@ -0,0 +1,52 @@ +{ stdenv, lib, 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}"; + version = "2.1.0"; + + src = fetchurl { + url = "http://sebastian.network/warsow/warsow_21_sdk.tar.gz"; + sha256 = "0fj5k7qpf6far8i1xhqxlpfjch10zj26xpilhp95aq2yiz08pj4r"; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ + libogg libvorbis libtheora curl freetype libjpeg SDL2 libGL openal zlib + libpng + ]; + + patches = [ ./libpath.patch ]; + postPatch = '' + cd source/source + substituteAllInPlace gameshared/q_arch.h + ''; + + cmakeFlags = [ "-DQFUSION_GAME=Warsow" ]; + + enableParallelBuilding = true; + + installPhase = '' + 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 + ''; + + meta = with stdenv.lib; { + description = "Multiplayer FPS game designed for competitive gaming (engine only)"; + homepage = http://www.warsow.net; + license = licenses.gpl2; + maintainers = with maintainers; [ astsmtl abbradar ]; + platforms = platforms.linux; + }; +}) |