Merge: zmap: 4.2.0 -> 4.3.1 (#364578)
[NixPkgs.git] / pkgs / by-name / gz / gzdoom / package.nix
blobdee7b1971da19cc9a1ed50aa5af59b859467dadd
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   makeWrapper,
6   makeDesktopItem,
7   copyDesktopItems,
8   SDL2,
9   bzip2,
10   cmake,
11   fluidsynth,
12   game-music-emu,
13   gtk3,
14   imagemagick,
15   libGL,
16   libjpeg,
17   libsndfile,
18   libvpx,
19   libwebp,
20   mpg123,
21   ninja,
22   openal,
23   pkg-config,
24   vulkan-loader,
25   zlib,
26   zmusic,
29 stdenv.mkDerivation rec {
30   pname = "gzdoom";
31   version = "4.13.2";
33   src = fetchFromGitHub {
34     owner = "ZDoom";
35     repo = "gzdoom";
36     rev = "g${version}";
37     fetchSubmodules = true;
38     hash = "sha256-3nkdpJ3XO58YHtjVTwxdSdCL6CnMcih6mTnI7FXLm34=";
39   };
41   outputs = [
42     "out"
43     "doc"
44   ];
46   nativeBuildInputs = [
47     cmake
48     copyDesktopItems
49     imagemagick
50     makeWrapper
51     ninja
52     pkg-config
53   ];
55   buildInputs = [
56     SDL2
57     bzip2
58     fluidsynth
59     game-music-emu
60     gtk3
61     libGL
62     libjpeg
63     libsndfile
64     libvpx
65     libwebp
66     mpg123
67     openal
68     vulkan-loader
69     zlib
70     zmusic
71   ];
73   postPatch = ''
74     substituteInPlace tools/updaterevision/UpdateRevision.cmake \
75       --replace-fail "ret_var(Tag)" "ret_var(\"${src.rev}\")" \
76       --replace-fail "ret_var(Timestamp)" "ret_var(\"1970-00-00 00:00:00 +0000\")" \
77       --replace-fail "ret_var(Hash)" "ret_var(\"${src.rev}\")" \
78       --replace-fail "<unknown version>" "${src.rev}"
79   '';
81   cmakeFlags = [
82     "-DDYN_GTK=OFF"
83     "-DDYN_OPENAL=OFF"
84   ];
86   desktopItems = [
87     (makeDesktopItem {
88       name = "gzdoom";
89       exec = "gzdoom";
90       desktopName = "GZDoom";
91       comment = meta.description;
92       icon = "gzdoom";
93       categories = [ "Game" ];
94     })
95   ];
97   postInstall = ''
98     mv $out/bin/gzdoom $out/share/games/doom/gzdoom
99     makeWrapper $out/share/games/doom/gzdoom $out/bin/gzdoom \
100       --set LD_LIBRARY_PATH ${lib.makeLibraryPath [ vulkan-loader ]}
102     for size in 16 24 32 48 64 128; do
103       mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
104       magick $src/src/win32/icon1.ico -background none -resize "$size"x"$size" -flatten \
105        $out/share/icons/hicolor/"$size"x"$size"/apps/gzdoom.png
106     done;
107   '';
109   meta = {
110     homepage = "https://github.com/ZDoom/gzdoom";
111     description = "Modder-friendly OpenGL and Vulkan source port based on the DOOM engine";
112     mainProgram = "gzdoom";
113     longDescription = ''
114       GZDoom is a feature centric port for all DOOM engine games, based on
115       ZDoom, adding an OpenGL renderer and powerful scripting capabilities.
116     '';
117     license = lib.licenses.gpl3Plus;
118     platforms = lib.platforms.linux;
119     maintainers = with lib.maintainers; [
120       azahi
121       lassulus
122       Gliczy
123     ];
124   };