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