diff options
Diffstat (limited to 'nixpkgs/pkgs/games/warsow/engine.nix')
-rw-r--r-- | nixpkgs/pkgs/games/warsow/engine.nix | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/warsow/engine.nix b/nixpkgs/pkgs/games/warsow/engine.nix new file mode 100644 index 000000000000..5bc2ef7dbd91 --- /dev/null +++ b/nixpkgs/pkgs/games/warsow/engine.nix @@ -0,0 +1,59 @@ +{ stdenv, lib, substituteAll, fetchurl, cmake, libogg, libvorbis, libtheora, curl, freetype +, libjpeg, libpng, SDL2, libGL, openal, zlib +}: + +stdenv.mkDerivation rec { + pname = "warsow-engine"; + version = "2.1.0"; + + src = fetchurl { + url = "http://slice.sh/warsow/warsow_21_sdk.tar.gz"; + sha256 = "0fj5k7qpf6far8i1xhqxlpfjch10zj26xpilhp95aq2yiz08pj4r"; + }; + + patches = [ + (substituteAll { + src = ./libpath.patch; + inherit zlib curl libpng libjpeg libogg libvorbis libtheora freetype; + }) + ]; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ + libogg libvorbis libtheora curl freetype libjpeg SDL2 libGL openal zlib + libpng + ]; + + # Workaround build failure on -fno-common toolchains: + # ld: CMakeFiles/wswtv_server.dir/__/unix/unix_time.c.o:(.bss+0x8): multiple definition of + # `c_pointcontents'; CMakeFiles/wswtv_server.dir/__/null/ascript_null.c.o:(.bss+0x8): first defined here + env.NIX_CFLAGS_COMPILE = "-fcommon"; + + cmakeFlags = [ "-DQFUSION_GAME=Warsow" ]; + + 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 lib; { + description = "Multiplayer FPS game designed for competitive gaming (engine only)"; + homepage = "http://www.warsow.net"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ astsmtl abbradar ]; + platforms = platforms.linux; + broken = stdenv.isAarch64; + }; +} |