pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / games / ironwail / default.nix
blob599637b3ae6043d12d439058e1e23fbdbd0b9b79
1 { lib
2 , stdenv
3 , SDL2
4 , fetchurl
5 , gzip
6 , libvorbis
7 , libmad
8 , flac
9 , libopus
10 , opusfile
11 , libogg
12 , curl
13 , libxmp
14 , vulkan-headers
15 , vulkan-loader
16 , copyDesktopItems
17 , makeDesktopItem
18 , pkg-config
21 stdenv.mkDerivation (finalAttrs: {
22   pname = "ironwail";
23   version = "0.7.0";
25   src = fetchurl {
26     url = "https://github.com/andrei-drexler/ironwail/archive/refs/tags/v${finalAttrs.version}.tar.gz";
27     hash = "sha256-NBG0wwQWqyGWQYJmiLKfxGxpDJLw7Kwf4EnYd33dOpU=";
28   };
30   sourceRoot = "${finalAttrs.pname}-${finalAttrs.version}/Quake";
32   nativeBuildInputs = [
33     copyDesktopItems
34     pkg-config
35     vulkan-headers
36     gzip
37     libvorbis
38     libmad
39     flac
40     curl
41     libopus
42     opusfile
43     libogg
44     libxmp
45     vulkan-loader
46     SDL2
47   ];
49   buildFlags = [
50     "DO_USERDIRS=1"
51     # Makefile defaults, set here to enforce consistency on Darwin build
52     "USE_CODEC_WAVE=1"
53     "USE_CODEC_MP3=1"
54     "USE_CODEC_VORBIS=1"
55     "USE_CODEC_FLAC=1"
56     "USE_CODEC_OPUS=1"
57     "USE_CODEC_MIKMOD=0"
58     "USE_CODEC_UMX=0"
59     "USE_CODEC_XMP=1"
60     "MP3LIB=mad"
61     "VORBISLIB=vorbis"
62     "SDL_CONFIG=sdl2-config"
63     "USE_SDL2=1"
64   ];
66   preInstall = ''
67     mkdir -p "$out/bin"
68     mkdir -p "$out/share/quake"
69     substituteInPlace Makefile --replace-fail "cp ironwail.pak /usr/local/games/quake" "cp ironwail.pak $out/share/quake/ironwail.pak"
70     substituteInPlace Makefile --replace-fail "/usr/local/games/quake" "$out/bin/ironwail"
71   '';
73   enableParallelBuilding = true;
75   desktopItems = [
76     (makeDesktopItem {
77       name = "ironwail";
78       exec = "ironwail";
79       desktopName = "Ironwail";
80       categories = [ "Game" ];
81     })
82   ];
84   meta = {
85     description = "Fork of the QuakeSpasm engine for iD software's Quake";
86     homepage = "https://github.com/andrei-drexler/ironwail";
87     longDescription = ''
88       Ironwail is a fork of QuakeSpasm with focus on high performance instead of
89       compatibility.
90       It features the ability to play the 2021 re-release content with no setup
91       required, a mods menu for quick access to installation of mods, and ease of
92       switching to installed mods.
93       It also include various visual features as well as improved limits for playing
94       larger levels with less performance impacts.
95     '';
97     license = lib.licenses.gpl2Plus;
98     platforms = lib.platforms.linux;
99     maintainers = [ lib.maintainers.necrophcodr ];
100     mainProgram = "ironwail";
101   };