python312Packages.icontract: relax deps (#380554)
[NixPkgs.git] / pkgs / by-name / sr / srb2kart / package.nix
blob72d9c153de33aa0d12f6e4b459f008e51b516a95
2   lib,
3   stdenv,
4   fetchzip,
5   fetchFromGitHub,
6   cmake,
7   curl,
8   nasm,
9   game-music-emu,
10   libpng,
11   SDL2,
12   SDL2_mixer,
13   zlib,
14   makeWrapper,
15   makeDesktopItem,
16   copyDesktopItems,
19 stdenv.mkDerivation (finalAttrs: {
20   pname = "srb2kart";
21   version = "1.6";
23   src = fetchFromGitHub {
24     owner = "STJr";
25     repo = "Kart-Public";
26     rev = "v${finalAttrs.version}";
27     hash = "sha256-5sIHdeenWZjczyYM2q+F8Y1SyLqL+y77yxYDUM3dVA0=";
28   };
30   assets = stdenv.mkDerivation {
31     pname = "srb2kart-data";
32     version = finalAttrs.version;
34     src = fetchzip {
35       url = "https://github.com/STJr/Kart-Public/releases/download/v${finalAttrs.version}/AssetsLinuxOnly.zip";
36       hash = "sha256-yaVdsQUnyobjSbmemeBEyu35GeZCX1ylTRcjcbDuIu4=";
37       stripRoot = false;
38     };
40     installPhase = ''
41       runHook preInstall
43       mkdir -p $out/share/srb2kart
44       cp -r * $out/share/srb2kart
46       runHook postInstall
47     '';
48   };
50   nativeBuildInputs = [
51     cmake
52     nasm
53     makeWrapper
54     copyDesktopItems
55   ];
57   buildInputs = [
58     curl
59     game-music-emu
60     libpng
61     SDL2
62     SDL2_mixer
63     zlib
64   ];
66   cmakeFlags = [
67     "-DSRB2_ASSET_DIRECTORY=${finalAttrs.assets}/share/srb2kart"
68     "-DGME_INCLUDE_DIR=${game-music-emu}/include"
69     "-DSDL2_MIXER_INCLUDE_DIR=${lib.getDev SDL2_mixer}/include/SDL2"
70     "-DSDL2_INCLUDE_DIR=${lib.getDev SDL2}/include/SDL2"
71   ];
73   desktopItems = [
74     (makeDesktopItem rec {
75       name = "Sonic Robo Blast 2 Kart";
76       exec = finalAttrs.pname;
77       icon = finalAttrs.pname;
78       comment = "Kart racing mod based on SRB2";
79       desktopName = name;
80       genericName = name;
81       startupWMClass = ".srb2kart-wrapped";
82       categories = [ "Game" ];
83     })
84   ];
86   installPhase = ''
87     runHook preInstall
89     install -Dm644 ../srb2.png $out/share/pixmaps/srb2kart.png
90     install -Dm644 ../srb2.png $out/share/icons/srb2kart.png
91     install -Dm755 bin/srb2kart $out/bin/srb2kart
93     wrapProgram $out/bin/srb2kart \
94       --set SRB2WADDIR "${finalAttrs.assets}/share/srb2kart"
96     runHook postInstall
97   '';
99   meta = with lib; {
100     description = "SRB2Kart is a classic styled kart racer";
101     homepage = "https://mb.srb2.org/threads/srb2kart.25868/";
102     platforms = platforms.linux;
103     license = licenses.gpl2Plus;
104     maintainers = with maintainers; [ donovanglover ];
105     mainProgram = "srb2kart";
106   };