nixpkgs/pkgs/games/super-tux-kart/default.nix
Linus Heckemann f62e2b24c3 superTuxKart: use assets directly from download
This saves ~600MiB per STK build, as long as the assets remain the same.
2020-05-04 22:56:39 +02:00

63 lines
1.9 KiB
Nix

{ stdenv, fetchFromGitHub, fetchsvn, cmake, pkgconfig, makeWrapper
, openal, freealut, libGLU, libGL, libvorbis, libogg, gettext, curl, freetype
, fribidi, libtool, bluez, libjpeg, libpng, zlib, libX11, libXrandr, enet, harfbuzz }:
let
dir = "stk-code";
assets = fetchsvn {
url = "https://svn.code.sf.net/p/supertuxkart/code/stk-assets";
rev = "18212";
sha256 = "1dyj8r5rfifhnhayga8w8irkpa99vw57xjmy74cp8xz8g7zvdzqf";
name = "stk-assets";
};
in stdenv.mkDerivation rec {
pname = "supertuxkart";
version = "1.1";
srcs = [
(fetchFromGitHub {
owner = "supertuxkart";
repo = "stk-code";
rev = version;
sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp";
name = dir;
})
];
nativeBuildInputs = [ cmake gettext libtool pkgconfig makeWrapper ];
buildInputs = [
libX11 libXrandr
openal freealut libGLU libGL libvorbis libogg zlib freetype
curl fribidi bluez libjpeg libpng enet harfbuzz
];
enableParallelBuilding = true;
cmakeFlags = [
"-DBUILD_RECORDER=OFF" # libopenglrecorder is not in nixpkgs
"-DUSE_SYSTEM_ANGELSCRIPT=OFF" # doesn't work with 2.31.2 or 2.32.0
"-DCHECK_ASSETS=OFF"
];
# Obtain the assets directly from the fetched store path, to avoid duplicating assets across multiple engine builds
preFixup = ''
wrapProgram $out/bin/supertuxkart --set-default SUPERTUXKART_ASSETS_DIR "${assets}"
'';
sourceRoot = dir;
meta = with stdenv.lib; {
description = "A Free 3D kart racing game";
longDescription = ''
SuperTuxKart is a Free 3D kart racing game, with many tracks,
characters and items for you to try, similar in spirit to Mario
Kart.
'';
homepage = "https://supertuxkart.net/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ pyrolagus peterhoeg ];
platforms = with platforms; linux;
};
}