SuperTuxKart: Replaced some bundled libraries with system ones
This commit is contained in:
parent
344dd8d193
commit
b2b28fcad3
@ -1,7 +1,8 @@
|
||||
{ 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 }:
|
||||
|
||||
{ lib, stdenv, fetchFromGitHub, fetchsvn, cmake, pkgconfig, makeWrapper
|
||||
, openal, freealut, libGLU, libGL, libvorbis, libogg, gettext, curl, freetype, glew
|
||||
, fribidi, libtool, bluez, libjpeg, libpng, zlib, libX11, libXrandr, harfbuzz
|
||||
, mcpp, wiiuse, angelscript
|
||||
}:
|
||||
let
|
||||
dir = "stk-code";
|
||||
assets = fetchsvn {
|
||||
@ -11,34 +12,62 @@ let
|
||||
name = "stk-assets";
|
||||
};
|
||||
|
||||
# List of bundled libraries in stk-code/lib to keep
|
||||
# Those are the libraries that cannot be replaced
|
||||
# with system packages.
|
||||
bundledLibraries = [
|
||||
# Bullet 2.87 is incompatible (bullet 2.79 needed whereas 2.87 is packaged)
|
||||
# The api changed in a lot of classes, too much work to adapt
|
||||
"bullet"
|
||||
# Upstream Libenet doesn't yet support IPv6,
|
||||
# So we will use the bundled libenet which
|
||||
# has been fixed to support it.
|
||||
"enet"
|
||||
# Internal library of STK, nothing to do about it
|
||||
"graphics_utils"
|
||||
# This irrlicht is bundled with cmake
|
||||
# whereas upstream irrlicht still uses
|
||||
# archaic Makefiles, too complicated to switch to.
|
||||
"irrlicht"
|
||||
# Not packaged to this date
|
||||
"libraqm"
|
||||
# Not packaged to this date
|
||||
"libsquish"
|
||||
];
|
||||
in stdenv.mkDerivation rec {
|
||||
|
||||
pname = "supertuxkart";
|
||||
version = "1.1";
|
||||
|
||||
srcs = [
|
||||
(fetchFromGitHub {
|
||||
owner = "supertuxkart";
|
||||
repo = "stk-code";
|
||||
rev = version;
|
||||
sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp";
|
||||
name = dir;
|
||||
})
|
||||
];
|
||||
src = fetchFromGitHub {
|
||||
owner = "supertuxkart";
|
||||
repo = "stk-code";
|
||||
rev = version;
|
||||
sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp";
|
||||
name = dir;
|
||||
};
|
||||
|
||||
# Deletes all bundled libs in stk-code/lib except those
|
||||
# That couldn't be replaced with system packages
|
||||
postPatch = ''
|
||||
find lib -maxdepth 1 -type d | egrep -v "^lib$|${(lib.concatStringsSep "|" bundledLibraries)}" | xargs -n1 -L1 -r -I{} rm -rf {}
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake gettext libtool pkgconfig makeWrapper ];
|
||||
|
||||
buildInputs = [
|
||||
libX11 libXrandr
|
||||
openal freealut libGLU libGL libvorbis libogg zlib freetype
|
||||
curl fribidi bluez libjpeg libpng enet harfbuzz
|
||||
openal freealut libGLU libGL libvorbis libogg zlib freetype glew
|
||||
curl fribidi bluez libjpeg libpng harfbuzz
|
||||
mcpp wiiuse angelscript
|
||||
];
|
||||
|
||||
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"
|
||||
"-DUSE_SYSTEM_WIIUSE=ON"
|
||||
"-DUSE_SYSTEM_ANGELSCRIPT=ON"
|
||||
];
|
||||
|
||||
# Obtain the assets directly from the fetched store path, to avoid duplicating assets across multiple engine builds
|
||||
@ -46,9 +75,9 @@ in stdenv.mkDerivation rec {
|
||||
wrapProgram $out/bin/supertuxkart --set-default SUPERTUXKART_ASSETS_DIR "${assets}"
|
||||
'';
|
||||
|
||||
sourceRoot = dir;
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "A Free 3D kart racing game";
|
||||
longDescription = ''
|
||||
SuperTuxKart is a Free 3D kart racing game, with many tracks,
|
||||
|
Loading…
Reference in New Issue
Block a user