diff options
author | Mx Kookie <kookie@spacekookie.de> | 2020-10-31 19:35:09 +0100 |
---|---|---|
committer | Mx Kookie <kookie@spacekookie.de> | 2020-10-31 19:35:09 +0100 |
commit | c4625b175f8200f643fd6e11010932ea44c78433 (patch) | |
tree | bce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/games/hedgewars | |
parent | 49f735974dd103039ddc4cb576bb76555164a9e7 (diff) | |
parent | d661aa56a8843e991261510c1bb28fdc2f6975ae (diff) |
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie
git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7
git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/games/hedgewars')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/games/hedgewars/default.nix | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/games/hedgewars/default.nix b/infra/libkookie/nixpkgs/pkgs/games/hedgewars/default.nix new file mode 100644 index 000000000000..f31a44e97c09 --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/games/hedgewars/default.nix @@ -0,0 +1,107 @@ +{ mkDerivation, SDL2_image, SDL2_ttf, SDL2_net, fpc, ghcWithPackages, ffmpeg_3, freeglut +, lib, fetchurl, cmake, pkgconfig, lua5_1, SDL2, SDL2_mixer +, zlib, libpng, libGL, libGLU, physfs +, qtbase, qttools +, llvm +, withServer ? true +}: + +let + # gameServer/hedgewars-server.cabal depends on network < 3 + ghc = ghcWithPackages (pkgs: with pkgs; [ + SHA bytestring entropy hslogger network_2_6_3_1 pkgs.zlib random + regex-tdfa sandi utf8-string vector + ]); + +in +mkDerivation rec { + pname = "hedgewars"; + version = "1.0.0"; + + src = fetchurl { + url = "https://www.hedgewars.org/download/releases/hedgewars-src-${version}.tar.bz2"; + sha256 = "0nqm9w02m0xkndlsj6ys3wr0ik8zc14zgilq7k6fwjrf3zk385i1"; + }; + + nativeBuildInputs = [ cmake pkgconfig qttools ]; + + buildInputs = [ + SDL2_ttf SDL2_net SDL2 SDL2_mixer SDL2_image + fpc lua5_1 + llvm # hard-requirement on aarch64, for some reason not strictly necessary on x86-64 + ffmpeg_3 freeglut physfs + qtbase + ] ++ lib.optional withServer ghc; + + postPatch = '' + substituteInPlace gameServer/CMakeLists.txt \ + --replace mask evaluate + + # compile with fpc >= 3.2.0 + # https://github.com/archlinux/svntogit-community/blob/75a1b3900fb3dd553d5114bbc8474d85fd6abb02/trunk/PKGBUILD#L26 + sed -i 's/procedure ShiftWorld(Dir: LongInt); inline;/procedure ShiftWorld(Dir: LongInt);/' hedgewars/uWorld.pas + ''; + + cmakeFlags = [ + "-DNOVERSIONINFOUPDATE=ON" + "-DNOSERVER=${if withServer then "OFF" else "ON"}" + ]; + + + # hslogger brings network-3 and network-bsd which conflict with + # network-2.6.3.1 + preConfigure = '' + substituteInPlace gameServer/CMakeLists.txt \ + --replace "haskell_flags}" \ + "haskell_flags} -package network-2.6.3.1 -hide-package network-bsd" + ''; + + NIX_LDFLAGS = lib.concatMapStringsSep " " (e: "-rpath ${e}/lib") [ + SDL2.out + SDL2_image + SDL2_mixer + SDL2_net + SDL2_ttf + libGL + libGLU + libpng.out + lua5_1 + physfs + zlib.out + ]; + + qtWrapperArgs = [ + "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libGL libGLU freeglut physfs ]}" + ]; + + meta = with lib; { + description = "Turn-based strategy artillery game similar to Worms"; + homepage = "http://hedgewars.org/"; + license = licenses.gpl2; + longDescription = '' + Each player controls a team of several hedgehogs. During the course of + the game, players take turns with one of their hedgehogs. They then use + whatever tools and weapons are available to attack and kill the + opponents' hedgehogs, thereby winning the game. Hedgehogs may move + around the terrain in a variety of ways, normally by walking and jumping + but also by using particular tools such as the "Rope" or "Parachute", to + move to otherwise inaccessible areas. Each turn is time-limited to + ensure that players do not hold up the game with excessive thinking or + moving. + + A large variety of tools and weapons are available for players during + the game: Grenade, Cluster Bomb, Bazooka, UFO, Homing Bee, Shotgun, + Desert Eagle, Fire Punch, Baseball Bat, Dynamite, Mine, Rope, Pneumatic + pick, Parachute. Most weapons, when used, cause explosions that deform + the terrain, removing circular chunks. The landscape is an island + floating on a body of water, or a restricted cave with water at the + bottom. A hedgehog dies when it enters the water (either by falling off + the island, or through a hole in the bottom of it), it is thrown off + either side of the arena or when its health is reduced, typically from + contact with explosions, to zero (the damage dealt to the attacked + hedgehog or hedgehogs after a player's or CPU turn is shown only when + all movement on the battlefield has ceased).''; + maintainers = with maintainers; [ kragniz fpletz ]; + inherit (ghc.meta) platforms; + }; +} |