pulsar: 1.124.0 -> 1.125.0 (#376475)
[NixPkgs.git] / pkgs / by-name / ra / raze / package.nix
blob7c3228700391d689802fdf22a17e23204c882519
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   fetchpatch,
6   cmake,
7   ninja,
8   SDL2,
9   zmusic,
10   libvpx,
11   pkg-config,
12   makeWrapper,
13   bzip2,
14   gtk3,
15   fluidsynth,
16   openal,
17   libGL,
18   vulkan-loader,
21 stdenv.mkDerivation (finalAttrs: {
22   pname = "raze";
23   version = "1.10.2";
25   src = fetchFromGitHub {
26     owner = "ZDoom";
27     repo = "Raze";
28     tag = finalAttrs.version;
29     hash = "sha256-R3Sm/cibg+D2QPS4UisRp91xvz3Ine2BUR8jF5Rbj1g=";
30     leaveDotGit = true;
31     postFetch = ''
32       cd $out
33       git rev-parse HEAD > COMMIT
34       rm -rf .git
35     '';
36   };
38   patches = [
39     # Fix build with gcc14
40     (fetchpatch {
41       name = "fix-gcc14.patch";
42       url = "https://github.com/ZDoom/Raze/commit/f3cad8426cd808be5ded036ed12a497d27d3742e.patch";
43       hash = "sha256-TMx5gFmcuSQbVPjpBnKgK7EluqPSWhLF+TU8ZRaL7LE=";
44     })
45   ];
47   nativeBuildInputs = [
48     cmake
49     ninja
50     pkg-config
51     makeWrapper
52   ];
54   buildInputs = [
55     SDL2
56     zmusic
57     libvpx
58     bzip2
59     gtk3
60     fluidsynth
61     openal
62     libGL
63     vulkan-loader
64   ];
66   cmakeFlags = [
67     (lib.cmakeBool "DYN_GTK" false)
68     (lib.cmakeBool "DYN_OPENAL" false)
69   ];
71   postPatch = ''
72     substituteInPlace tools/updaterevision/gitinfo.h.in \
73       --replace-fail "@Tag@" "${finalAttrs.version}" \
74       --replace-fail "@Hash@" "$(cat COMMIT)" \
75       --replace-fail "@Timestamp@" "1970-01-01 00:00:01 +0000"
76   '';
78   postInstall = ''
79     mv $out/bin/raze $out/share/raze
80     makeWrapper $out/share/raze/raze $out/bin/raze \
81       --set LD_LIBRARY_PATH ${lib.makeLibraryPath [ vulkan-loader ]}
82     install -Dm644 ../source/platform/posix/org.zdoom.Raze.256.png $out/share/pixmaps/org.zdoom.Raze.png
83     install -Dm644 ../source/platform/posix/org.zdoom.Raze.desktop $out/share/applications/org.zdoom.Raze.desktop
84     install -Dm644 ../soundfont/raze.sf2 $out/share/raze/soundfonts/raze.sf2
85   '';
87   meta = {
88     description = "Build engine port backed by GZDoom tech";
89     longDescription = ''
90       Raze is a fork of Build engine games backed by GZDoom tech and combines
91       Duke Nukem 3D, Blood, Redneck Rampage, Shadow Warrior and Exhumed/Powerslave
92       in a single package. It is also capable of playing Nam and WW2 GI.
93     '';
94     homepage = "https://github.com/ZDoom/Raze";
95     license = lib.licenses.gpl2Only;
96     maintainers = with lib.maintainers; [ qubitnano ];
97     mainProgram = "raze";
98     platforms = [ "x86_64-linux" ];
99   };