diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix index 97b6be9be2e..65fab09d04d 100644 --- a/pkgs/games/openttd/default.nix +++ b/pkgs/games/openttd/default.nix @@ -1,5 +1,24 @@ -{ stdenv, fetchurl, pkgconfig, SDL, libpng, zlib, xz, freetype, fontconfig }: +{ stdenv, fetchurl, fetchzip, pkgconfig, SDL, libpng, zlib, xz, freetype, fontconfig +, withOpenGFX ? true, withOpenSFX ? true, withOpenMSX ? true +}: +let + opengfx = fetchzip { + url = "http://binaries.openttd.org/extra/opengfx/0.5.2/opengfx-0.5.2-all.zip"; + sha256 = "1sjzwl8wfdj0izlx2qdq15bqiy1vzq7gq7drydfwwryk173ig5sa"; + }; + + opensfx = fetchzip { + url = "http://binaries.openttd.org/extra/opensfx/0.2.3/opensfx-0.2.3-all.zip"; + sha256 = "1bb167kszdd6dqbcdjrxxwab6b7y7jilhzi3qijdhprpm5gf1lp3"; + }; + + openmsx = fetchzip { + url = "http://binaries.openttd.org/extra/openmsx/0.3.1/openmsx-0.3.1-all.zip"; + sha256 = "0qnmfzz0v8vxrrvxnm7szphrlrlvhkwn3y92b4iy0b4b6yam0yd4"; + }; + +in stdenv.mkDerivation rec { name = "openttd-${version}"; version = "1.5.3"; @@ -9,7 +28,9 @@ stdenv.mkDerivation rec { sha256 = "0qxss5rxzac94z5k16xv84ll0n163sphs88xkgv3z7vwramagffq"; }; - buildInputs = [ SDL libpng pkgconfig xz zlib freetype fontconfig ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ SDL libpng xz zlib freetype fontconfig ]; + prefixKey = "--prefix-dir="; configureFlags = [ @@ -21,6 +42,20 @@ stdenv.mkDerivation rec { postInstall = '' mv $out/games/ $out/bin + + ${stdenv.lib.optionalString withOpenGFX '' + cp ${opengfx}/* $out/share/games/openttd/baseset + ''} + + mkdir -p $out/share/games/openttd/data + + ${stdenv.lib.optionalString withOpenSFX '' + cp ${opensfx}/*.{obs,cat} $out/share/games/openttd/data + ''} + + ${stdenv.lib.optionalString withOpenMSX '' + cp ${openmsx}/*.{obm,mid} $out/share/games/openttd/data + ''} ''; meta = { @@ -38,6 +73,6 @@ stdenv.mkDerivation rec { homepage = http://www.openttd.org/; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.unix; - maintainers = with stdenv.lib.maintainers; [ jcumming the-kenny ]; + maintainers = with stdenv.lib.maintainers; [ jcumming the-kenny fpletz ]; }; }