nixpkgs/pkgs/games/srb2kart/default.nix
Sergei Trofimovich 83b01dd4ec SDL2_mixer: add "dev" output
`SDL2_mixer` is a a popular game dependency. Split it's `dev` output to
separate store path to reduce runtime closure size.

While at it amend a few games's include paths.
2022-09-21 07:36:32 +01:00

88 lines
1.7 KiB
Nix

{ lib
, stdenv
, fetchurl
, fetchFromGitHub
, substituteAll
, cmake
, curl
, nasm
, unzip
, game-music-emu
, libpng
, SDL2
, SDL2_mixer
, zlib
}:
let
release_tag = "v1.3";
installer = fetchurl {
url = "https://github.com/STJr/Kart-Public/releases/download/${release_tag}/srb2kart-v13-Installer.exe";
sha256 = "0bk36y7wf6xfdg6j0b8qvk8671hagikzdp5nlfqg478zrj0qf6cs";
};
in stdenv.mkDerivation rec {
pname = "srb2kart";
version = "1.3.0";
src = fetchFromGitHub {
owner = "STJr";
repo = "Kart-Public";
rev = release_tag;
sha256 = "131g9bmc9ihvz0klsc3yzd0pnkhx3mz1vzm8y7nrrsgdz5278y49";
};
nativeBuildInputs = [
cmake
nasm
unzip
];
buildInputs = [
curl
game-music-emu
libpng
SDL2
SDL2_mixer
zlib
];
cmakeFlags = [
#"-DSRB2_ASSET_DIRECTORY=/build/source/assets"
"-DGME_INCLUDE_DIR=${game-music-emu}/include"
"-DSDL2_MIXER_INCLUDE_DIR=${lib.getDev SDL2_mixer}/include/SDL2"
"-DSDL2_INCLUDE_DIR=${lib.getDev SDL2}/include/SDL2"
];
patches = [
./wadlocation.patch
];
postPatch = ''
substituteInPlace src/sdl/i_system.c \
--replace '@wadlocation@' $out
'';
preConfigure = ''
mkdir assets/installer
pushd assets/installer
unzip ${installer} "*.kart" srb2.srb
popd
'';
postInstall = ''
mkdir -p $out/bin $out/share/games/SRB2Kart
mv $out/srb2kart* $out/bin/
mv $out/*.kart $out/share/games/SRB2Kart
'';
meta = with lib; {
description = "SRB2Kart is a classic styled kart racer";
homepage = "https://mb.srb2.org/threads/srb2kart.25868/";
platforms = platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ viric ];
};
}