sdrangel: fix build on x86_64-darwin
[NixPkgs.git] / pkgs / games / urbanterror / default.nix
bloba1bf80784d03b2e03954b3023115775921ffaa15
1 { lib
2 , fetchzip
3 , stdenv
4 , copyDesktopItems
5 , imagemagick
6 , libicns
7 , makeBinaryWrapper
8 , curl
9 , libGL
10 , libGLU
11 , openal
12 , libXxf86vm
13 , SDL
14 , makeDesktopItem
17 let
18   version = "4.3.4";
20   urbanterror-maps = fetchzip {
21     name = "urbanterror-maps";
22     url = "http://cdn.urbanterror.info/urt/43/releases/zips/UrbanTerror${builtins.replaceStrings ["."] [""] version}_full.zip";
23     hash = "sha256-C6Gb5PPECAOjQhmkrzkV6dpY/zHVtUj9oq3507o2PUI=";
24   };
26   urbanterror-source = fetchzip {
27     name = "urbanterror-source";
28     url = "https://github.com/FrozenSand/ioq3-for-UrbanTerror-4/archive/release-${version}.zip";
29     hash = "sha256-zF6Tkaj5WYkFU66VwpBFr1P18OJGrGgxnc/jvcvt8hA=";
30   };
32 stdenv.mkDerivation {
33   pname = "urbanterror";
34   inherit version;
36   srcs = [
37     urbanterror-maps
38     urbanterror-source
39   ];
41   sourceRoot = "urbanterror-source";
43   nativeBuildInputs = [
44     copyDesktopItems
45     imagemagick
46     libicns
47     makeBinaryWrapper
48   ];
50   buildInputs = [
51     curl
52     libGL
53     libGLU
54     openal
55     libXxf86vm
56     SDL
57   ];
59   preConfigure = ''
60     cp ${./Makefile.local} ./Makefile.local
61   '';
63   installTargets = [ "copyfiles" ];
64   installFlags = [ "COPYDIR=$(out)/share/urbanterror" ];
66   preInstall = ''
67     mkdir -p $out/share/urbanterror
68   '';
70   postInstall = ''
71     icns2png --extract ${urbanterror-maps}/Quake3-UrT.app/Contents/Resources/quake3-urt.icns
73     for size in 16 24 32 48 64 128 256 512 1024; do
74       mkdir -pv $out/share/icons/hicolor/"$size"x"$size"/apps
75       if [ ! -e quake3-urt_"$size"x"$size"x32.png ] ; then
76         convert -resize "$size"x"$size" quake3-urt_512x512x32.png quake3-urt_"$size"x"$size"x32.png
77       fi
78       install -Dm644 quake3-urt_"$size"x"$size"x32.png $out/share/icons/hicolor/"$size"x"$size"/apps/urbanterror.png
79     done;
81     makeWrapper $out/share/urbanterror/Quake3-UrT.* $out/bin/urbanterror
82     makeWrapper $out/share/urbanterror/Quake3-UrT-Ded.* $out/bin/urbanterror-ded
84     ln -s ${urbanterror-maps}/q3ut4 $out/share/urbanterror/
85   '';
87   hardeningDisable = [ "format" ];
89   desktopItems = [
90     (makeDesktopItem {
91       name = "urbanterror";
92       exec = "urbanterror";
93       icon = "urbanterror";
94       comment = "A multiplayer tactical FPS on top of Quake 3 engine";
95       desktopName = "Urban Terror";
96       categories = [ "Game" "ActionGame" ];
97     })
98   ];
100   meta = {
101     description = "A multiplayer tactical FPS on top of Quake 3 engine";
102     homepage = "https://www.urbanterror.info";
103     license = lib.licenses.unfreeRedistributable;
104     longDescription = ''
105       Urban Terror is a free multiplayer first person shooter developed by
106       FrozenSand, that (thanks to the ioquake3-code) does not require
107       Quake III Arena anymore. Urban Terror can be described as a Hollywood
108       tactical shooter; somewhat realism based, but the motto is "fun over
109       realism". This results in a very unique, enjoyable and addictive game.
110     '';
111     mainProgram = "urbanterror";
112     maintainers = with lib.maintainers; [ astsmtl drupol ];
113     platforms = lib.platforms.linux;
114   };