nixpkgs/pkgs/games/dwarf-fortress/default.nix
Matthew Bauer 812b0ec62e dwarf-fortress: recurse into themes
Now the output of “nix-env” should be:

$ nix-env -qa -f . -A dwarf-fortress-packages
afro-graphics-44.10
autoreiv-44.03
cla-44.xx-v25
dwarf-fortress-0.43.05
dwarf-fortress-0.44.05
dwarf-fortress-0.44.09
dwarf-fortress-0.44.10
dwarf-fortress-0.44.11
dwarf-fortress-0.44.12
dwarf-therapist-40.1.0
gemset-44.10a
ironhand-44.10
jolly-bastion-44.10
legends-browser-1.17.1
mayday-44.10
obsidian-44.10
phoebus-44.10
rally-ho-44.10
soundsense-2016-1_196
spacefox-44.10a
taffer-44.10a
tergel-44.03
wanderlust-44.10
2018-07-09 16:18:17 -04:00

51 lines
1.5 KiB
Nix

{ pkgs, stdenv, stdenvNoCC, gccStdenv, lib, recurseIntoAttrs }:
let
callPackage = pkgs.newScope self;
df-games = lib.listToAttrs (map (dfVersion: {
name = "dwarf-fortress_${lib.replaceStrings ["."] ["_"] dfVersion}";
value = callPackage ./wrapper {
inherit (self) themes;
dwarf-fortress = callPackage ./game.nix { inherit dfVersion; };
};
}) (lib.attrNames self.df-hashes));
self = rec {
df-hashes = builtins.fromJSON (builtins.readFile ./game.json);
dwarf-fortress = df-games.dwarf-fortress_0_44_11;
dfhack = callPackage ./dfhack {
inherit (pkgs.perlPackages) XMLLibXML XMLLibXSLT;
stdenv = gccStdenv;
};
soundSense = callPackage ./soundsense.nix { };
# unfuck is linux-only right now, we will just use it there
dwarf-fortress-unfuck = if stdenv.isLinux then callPackage ./unfuck.nix { }
else null;
dwarf-therapist = callPackage ./dwarf-therapist/wrapper.nix {
inherit (dwarf-fortress) dwarf-fortress;
dwarf-therapist = pkgs.qt5.callPackage ./dwarf-therapist {
texlive = pkgs.texlive.combine {
inherit (pkgs.texlive) scheme-basic float caption wrapfig adjmulticol sidecap preprint enumitem;
};
};
};
legends-browser = callPackage ./legends-browser {};
themes = recurseIntoAttrs (callPackage ./themes {
stdenv = stdenvNoCC;
});
# aliases
phoebus-theme = themes.phoebus;
cla-theme = themes.cla;
dwarf-fortress-original = dwarf-fortress.dwarf-fortress;
};
in self // df-games