diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/sr/srb2kart/package.nix')
-rw-r--r-- | nixpkgs/pkgs/by-name/sr/srb2kart/package.nix | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/sr/srb2kart/package.nix b/nixpkgs/pkgs/by-name/sr/srb2kart/package.nix new file mode 100644 index 000000000000..9601d99263ac --- /dev/null +++ b/nixpkgs/pkgs/by-name/sr/srb2kart/package.nix @@ -0,0 +1,106 @@ +{ lib +, stdenv +, fetchzip +, fetchFromGitHub +, cmake +, curl +, nasm +, game-music-emu +, libpng +, SDL2 +, SDL2_mixer +, zlib +, makeWrapper +, makeDesktopItem +, copyDesktopItems +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "srb2kart"; + version = "1.6"; + + src = fetchFromGitHub { + owner = "STJr"; + repo = "Kart-Public"; + rev = "v${finalAttrs.version}"; + hash = "sha256-5sIHdeenWZjczyYM2q+F8Y1SyLqL+y77yxYDUM3dVA0="; + }; + + assets = stdenv.mkDerivation { + pname = "srb2kart-data"; + version = finalAttrs.version; + + src = fetchzip { + url = "https://github.com/STJr/Kart-Public/releases/download/v${finalAttrs.version}/AssetsLinuxOnly.zip"; + hash = "sha256-yaVdsQUnyobjSbmemeBEyu35GeZCX1ylTRcjcbDuIu4="; + stripRoot = false; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/srb2kart + cp -r * $out/share/srb2kart + + runHook postInstall + ''; + }; + + nativeBuildInputs = [ + cmake + nasm + makeWrapper + copyDesktopItems + ]; + + buildInputs = [ + curl + game-music-emu + libpng + SDL2 + SDL2_mixer + zlib + ]; + + cmakeFlags = [ + "-DSRB2_ASSET_DIRECTORY=${finalAttrs.assets}/share/srb2kart" + "-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" + ]; + + desktopItems = [ + (makeDesktopItem rec { + name = "Sonic Robo Blast 2 Kart"; + exec = finalAttrs.pname; + icon = finalAttrs.pname; + comment = "Kart racing mod based on SRB2"; + desktopName = name; + genericName = name; + startupWMClass = ".srb2kart-wrapped"; + categories = [ "Game" ]; + }) + ]; + + installPhase = '' + runHook preInstall + + install -Dm644 ../srb2.png $out/share/pixmaps/srb2kart.png + install -Dm644 ../srb2.png $out/share/icons/srb2kart.png + install -Dm755 bin/srb2kart $out/bin/srb2kart + + wrapProgram $out/bin/srb2kart \ + --set SRB2WADDIR "${finalAttrs.assets}/share/srb2kart" + + runHook postInstall + ''; + + 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 donovanglover ]; + mainProgram = "srb2kart"; + }; +}) |