nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 97 lines 2.7 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 cmake, 6 pkg-config, 7 SDL2, 8 SDL2_mixer, 9 alsa-lib, 10 libpng, 11 pcre, 12 makeDesktopItem, 13}: 14 15stdenv.mkDerivation rec { 16 pname = "ivan"; 17 version = "059-unstable-2025-02-20"; 18 19 src = fetchFromGitHub { 20 owner = "Attnam"; 21 repo = "ivan"; 22 rev = "0000b8621bb767b594802e663686d3a1da2c5060"; 23 hash = "sha256-vqrQozsNrqW4oqoJ4V5E15AsMEuHq+pyZz7EtiA5euE="; 24 }; 25 26 patches = [ 27 ./cmake.patch 28 ]; 29 30 nativeBuildInputs = [ 31 cmake 32 pkg-config 33 ]; 34 35 buildInputs = [ 36 SDL2 37 SDL2_mixer 38 alsa-lib 39 libpng 40 pcre 41 ]; 42 43 hardeningDisable = [ "all" ]; 44 45 # Enable wizard mode 46 cmakeFlags = [ "-DCMAKE_CXX_FLAGS=-DWIZARD" ]; 47 48 # Help CMake find SDL_mixer.h 49 env.NIX_CFLAGS_COMPILE = "-I${lib.getDev SDL2_mixer}/include/SDL2"; 50 51 # Create "ivan.desktop" file 52 ivanDesktop = makeDesktopItem { 53 name = pname; 54 exec = pname; 55 icon = "ivan.png"; 56 desktopName = "IVAN"; 57 genericName = pname; 58 categories = [ 59 "Game" 60 "AdventureGame" 61 "RolePlaying" 62 ]; 63 comment = meta.description; 64 }; 65 66 # Create appropriate directories. Copy icons and desktop item to these directories. 67 postInstall = '' 68 mkdir -p $out/share/applications 69 mkdir -p $out/share/icons/hicolor/16x16/apps 70 mkdir -p $out/share/icons/hicolor/32x32/apps 71 mkdir -p $out/share/icons/hicolor/128x128/apps 72 mkdir -p $out/share/icons/hicolor/256x256/apps 73 mkdir -p $out/share/icons/hicolor/512x512/apps 74 cp $src/Graphics/icons/shadowless.iconset/icon_16x16.png $out/share/icons/hicolor/16x16/apps/ivan.png 75 cp $src/Graphics/icons/shadowless.iconset/icon_32x32.png $out/share/icons/hicolor/32x32/apps/ivan.png 76 cp $src/Graphics/icons/shadowless.iconset/icon_128x128.png $out/share/icons/hicolor/128x128/apps/ivan.png 77 cp $src/Graphics/icons/shadowless.iconset/icon_256x256.png $out/share/icons/hicolor/256x256/apps/ivan.png 78 cp $src/Graphics/icons/shadowless.iconset/icon_512x512.png $out/share/icons/hicolor/512x512/apps/ivan.png 79 cp ${ivanDesktop}/share/applications/* $out/share/applications 80 ''; 81 82 meta = { 83 description = "Graphical roguelike game"; 84 longDescription = '' 85 Iter Vehemens ad Necem (IVAN) is a graphical roguelike game, which currently 86 runs in Windows, DOS, Linux, and OS X. It features advanced bodypart and 87 material handling, multi-colored lighting and, above all, deep gameplay. 88 89 This is a fan continuation of IVAN by members of Attnam.com 90 ''; 91 homepage = "https://attnam.com/"; 92 license = lib.licenses.gpl2Plus; 93 platforms = lib.platforms.linux; 94 maintainers = [ ]; 95 mainProgram = "ivan"; 96 }; 97}