evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / as / assaultcube / package.nix
blob7164e66feebf45852a0f8fce68f3715fe72b724a
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , makeDesktopItem
5 , copyDesktopItems
6 , openal
7 , pkg-config
8 , libogg
9 , libvorbis
10 , SDL2
11 , SDL2_image
12 , makeWrapper
13 , zlib
14 , file
15 , client ? true, server ? true
18 stdenv.mkDerivation rec {
19   pname = "assaultcube";
20   version = "1.3.0.2";
22   src = fetchFromGitHub {
23     owner = "assaultcube";
24     repo  = "AC";
25     rev = "v${version}";
26     sha256 = "0qv339zw9q5q1y7bghca03gw7z4v89sl4lbr6h3b7siy08mcwiz9";
27   };
29   nativeBuildInputs = [
30     makeWrapper
31     pkg-config
32     copyDesktopItems
33   ];
35   buildInputs = [
36     file
37     zlib
38   ] ++ lib.optionals client [
39     openal
40     SDL2
41     SDL2_image
42     libogg
43     libvorbis
44   ];
46   targets = (lib.optionalString server "server") + (lib.optionalString client " client");
47   makeFlags = [ "-C source/src" "CXX=${stdenv.cc.targetPrefix}c++" targets ];
49   desktopItems = [
50     (makeDesktopItem {
51       name = pname;
52       desktopName = "AssaultCube";
53       comment = "A multiplayer, first-person shooter game, based on the CUBE engine. Fast, arcade gameplay.";
54       genericName = "First-person shooter";
55       categories = [ "Game" "ActionGame" "Shooter" ];
56       icon = "assaultcube";
57       exec = pname;
58     })
59   ];
61   gamedatadir = "/share/games/${pname}";
63   installPhase = ''
64     runHook preInstall
66     bindir=$out/bin
68     mkdir -p $bindir $out/$gamedatadir
70     cp -r config packages $out/$gamedatadir
72     if (test -e source/src/ac_client) then
73       cp source/src/ac_client $bindir
74       mkdir -p $out/share/applications
75       install -Dpm644 packages/misc/icon.png $out/share/icons/assaultcube.png
76       install -Dpm644 packages/misc/icon.png $out/share/pixmaps/assaultcube.png
78       makeWrapper $out/bin/ac_client $out/bin/${pname} \
79         --chdir "$out/$gamedatadir" --add-flags "--home=\$HOME/.assaultcube/v1.2next --init"
80     fi
82     if (test -e source/src/ac_server) then
83       cp source/src/ac_server $bindir
84       makeWrapper $out/bin/ac_server $out/bin/${pname}-server \
85         --chdir "$out/$gamedatadir" --add-flags "-Cconfig/servercmdline.txt"
86     fi
88     runHook postInstall
89   '';
91   meta = with lib; {
92     description = "Fast and fun first-person-shooter based on the Cube fps";
93     homepage = "https://assault.cubers.net";
94     platforms = platforms.linux; # should work on darwin with a little effort.
95     license = licenses.unfree;
96     maintainers = with maintainers; [ darkonion0 ];
97   };