ansible-later: 2.0.22 -> 2.0.23
[NixPkgs.git] / pkgs / games / alephone / default.nix
blob98b21865d7cab294fb201e3c5384be4ae43727e1
1 { lib, stdenv, fetchurl, boost, curl, ffmpeg_4, icoutils, libGLU, libmad, libogg
2 , libpng, libsndfile, libvorbis, lua, pkg-config, SDL2, SDL2_image, SDL2_net
3 , SDL2_ttf, smpeg, speex, zziplib, zlib, makeWrapper, makeDesktopItem, unzip
4 , alephone }:
6 let
7   self = stdenv.mkDerivation rec {
8     outputs = [ "out" "icons" ];
9     pname = "alephone";
10     version = "1.4";
12     src = fetchurl {
13       url = let date = "20210408";
14       in "https://github.com/Aleph-One-Marathon/alephone/releases/download/release-${date}/AlephOne-${date}.tar.bz2";
15       sha256 = "sha256-tMwATUhUpo8W2oSWxGSZcAHVkj1PWEvUR/rpMZwWCWA=";
16     };
18     nativeBuildInputs = [ pkg-config icoutils ];
20     buildInputs = [
21       boost
22       curl
23       ffmpeg_4
24       libGLU
25       libmad
26       libsndfile
27       libogg
28       libpng
29       libvorbis
30       lua
31       SDL2
32       SDL2_image
33       SDL2_net
34       SDL2_ttf
35       smpeg
36       speex
37       zziplib
38       zlib
39     ];
41     configureFlags = [ "--with-boost=${boost}" ];
43     enableParallelBuilding = true;
45     postInstall = ''
46       mkdir $icons
47       icotool -x -i 5 -o $icons Resources/Windows/*.ico
48       pushd $icons
49       for x in *_5_48x48x32.png; do
50         mv $x ''${x%_5_48x48x32.png}.png
51       done
52       popd
53     '';
55     meta = with lib; {
56       description =
57         "Aleph One is the open source continuation of Bungie’s Marathon 2 game engine";
58       homepage = "https://alephone.lhowon.org/";
59       license = with licenses; [ gpl3 ];
60       maintainers = with maintainers; [ ehmry ];
61       platforms = platforms.linux;
62     };
63   };
65 in self // {
66   makeWrapper = { pname, desktopName, version, zip, meta
67     , icon ? alephone.icons + "/alephone.png", ... }@extraArgs:
68     stdenv.mkDerivation ({
69       inherit pname version;
71       desktopItem = makeDesktopItem {
72         name = desktopName;
73         exec = pname;
74         genericName = pname;
75         categories = [ "Game" ];
76         comment = meta.description;
77         inherit desktopName icon;
78       };
80       src = zip;
82       nativeBuildInputs = [ makeWrapper unzip ];
84       dontConfigure = true;
85       dontBuild = true;
87       installPhase = ''
88         mkdir -p $out/bin $out/data/$pname $out/share/applications
89         cp -a * $out/data/$pname
90         cp $desktopItem/share/applications/* $out/share/applications
91         makeWrapper ${alephone}/bin/alephone $out/bin/$pname \
92           --add-flags $out/data/$pname
93       '';
94     } // extraArgs // {
95       meta = alephone.meta // {
96         license = lib.licenses.free;
97         hydraPlatforms = [ ];
98       } // meta;
99     });