77 lines
2.3 KiB
Nix
77 lines
2.3 KiB
Nix
x@{builderDefsPackage
|
|
, fetchsvn, mesa, SDL, SDL_image, SDL_mixer
|
|
, libpng, zlib, libjpeg, imagemagick, libX11
|
|
, ...}:
|
|
builderDefsPackage
|
|
(a :
|
|
let
|
|
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
|
|
["fetchsvn"];
|
|
|
|
buildInputs = map (n: builtins.getAttr n x)
|
|
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
|
|
sourceInfo = rec {
|
|
baseName="sauerbraten";
|
|
version="3331";
|
|
name="${baseName}-r${version}";
|
|
url="https://svn.code.sf.net/p/sauerbraten/code";
|
|
hash="0904hk9rz2x941c9587bfxa4rca81260j3m2hjjrp984w67x2w7y";
|
|
};
|
|
in
|
|
rec {
|
|
srcDrv = a.fetchsvn {
|
|
url = sourceInfo.url;
|
|
sha256 = sourceInfo.hash;
|
|
rev = sourceInfo.version;
|
|
};
|
|
|
|
src = srcDrv + "/";
|
|
|
|
inherit (sourceInfo) name version;
|
|
inherit buildInputs;
|
|
|
|
phaseNames = ["setVars" "doMakeInstall" "doCreateScripts"];
|
|
|
|
setVars = a.noDepEntry ''
|
|
export NIX_LDFLAGS="$NIX_LDFLAGS -lX11"
|
|
'';
|
|
|
|
doUnpack = a.fullDepEntry ''
|
|
mkdir -p $out/share/sauerbraten/build-dir
|
|
ln -s $out/share/sauerbraten/build-dir
|
|
cd $out/share/sauerbraten/build-dir
|
|
(cd ${src}; find . -type d) | tail -n +2 | xargs -L 1 mkdir
|
|
(cd ${src}; find . -type f) | while read; do ln -s ${src}/"$REPLY" "$(dirname "$REPLY")"; done
|
|
cd src
|
|
ls
|
|
make clean
|
|
sed -e '/[.]h[.]gch/,/-o/s@-o@-x c++-header -o@' -i Makefile
|
|
'' ["minInit" "addInputs" "defEnsureDir"];
|
|
|
|
doCreateScripts = a.fullDepEntry ''
|
|
cd ..
|
|
mkdir -p $out/bin
|
|
echo '#! /bin/sh' >> $out/bin/sauerbraten_server
|
|
echo 'cd "'"$out"'/share/sauerbraten/build-dir"' >> $out/bin/sauerbraten_server
|
|
echo './bin_unix/native_server "$@"' >> $out/bin/sauerbraten_server
|
|
echo '#! /bin/sh' >> $out/bin/sauerbraten_client
|
|
echo 'cd "'"$out"'/share/sauerbraten/build-dir"' >> $out/bin/sauerbraten_client
|
|
echo './bin_unix/native_client "$@"' >> $out/bin/sauerbraten_client
|
|
chmod a+x $out/bin/sauerbraten_*
|
|
'' ["minInit" "defEnsureDir"];
|
|
|
|
meta = {
|
|
description = "";
|
|
maintainers = with a.lib.maintainers;
|
|
[
|
|
raskin
|
|
];
|
|
platforms = with a.lib.platforms;
|
|
# raskin: tested amd64-linux;
|
|
# not setting platforms because it is 0.5+ GiB of game data
|
|
[];
|
|
license = "freeware"; # as an aggregate - data files have different licenses
|
|
# code is under zlib license
|
|
};
|
|
}) x
|
|
|