2018-07-09 22:23:43 +02:00
|
|
|
{ pkgs, stdenv, stdenvNoCC, buildEnv, gccStdenv, lib, recurseIntoAttrs }:
|
2018-07-05 21:09:03 +02:00
|
|
|
|
|
|
|
# To whomever it may concern:
|
|
|
|
#
|
|
|
|
# This directory menaces with spikes of Nix code. It is terrifying.
|
|
|
|
#
|
|
|
|
# If this is your first time here, you should probably install the dwarf-fortress-full package,
|
|
|
|
# for instance with `environment.systempackages = [ pkgs.dwarf-fortress.dwarf-fortress-full ];`.
|
|
|
|
#
|
|
|
|
# You can adjust its settings by using override, or compile your own package by
|
|
|
|
# using the other packages here. Take a look at lazy-pack.nix to get an idea of
|
|
|
|
# how.
|
|
|
|
#
|
|
|
|
# You will find the configuration files in ~/.local/share/df_linux/data/init. If
|
|
|
|
# you un-symlink them and edit, then the scripts will avoid overwriting your
|
|
|
|
# changes on later launches, but consider extending the wrapper with your
|
|
|
|
# desired options instead.
|
|
|
|
#
|
|
|
|
# Although both dfhack and dwarf therapist are included in the lazy pack, you
|
|
|
|
# can only use one at a time. DFHack does have therapist-like features, so this
|
|
|
|
# may or may not be a problem.
|
2014-11-07 17:06:56 +01:00
|
|
|
|
|
|
|
let
|
2016-01-12 18:56:59 +01:00
|
|
|
callPackage = pkgs.newScope self;
|
2014-11-07 17:06:56 +01:00
|
|
|
|
2018-07-08 21:44:29 +02:00
|
|
|
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; };
|
2018-07-05 23:21:24 +02:00
|
|
|
};
|
2018-07-08 21:44:29 +02:00
|
|
|
}) (lib.attrNames self.df-hashes));
|
|
|
|
|
|
|
|
self = rec {
|
|
|
|
df-hashes = builtins.fromJSON (builtins.readFile ./game.json);
|
|
|
|
dwarf-fortress = df-games.dwarf-fortress_0_44_11;
|
2015-09-27 01:13:06 +02:00
|
|
|
|
2018-07-05 21:09:03 +02:00
|
|
|
dwarf-fortress-full = callPackage ./lazy-pack.nix { };
|
|
|
|
|
2016-11-23 16:04:57 +01:00
|
|
|
dfhack = callPackage ./dfhack {
|
|
|
|
inherit (pkgs.perlPackages) XMLLibXML XMLLibXSLT;
|
2018-06-06 23:05:02 +02:00
|
|
|
stdenv = gccStdenv;
|
2014-11-07 17:06:56 +01:00
|
|
|
};
|
2015-09-27 01:13:06 +02:00
|
|
|
|
2017-06-19 02:48:02 +02:00
|
|
|
soundSense = callPackage ./soundsense.nix { };
|
|
|
|
|
2018-07-05 21:09:03 +02:00
|
|
|
# unfuck is linux-only right now, we will only use it there.
|
2018-05-11 06:55:06 +02:00
|
|
|
dwarf-fortress-unfuck = if stdenv.isLinux then callPackage ./unfuck.nix { }
|
2018-07-08 21:44:29 +02:00
|
|
|
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;
|
|
|
|
};
|
2016-01-12 19:17:46 +01:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2018-07-04 22:04:19 +02:00
|
|
|
legends-browser = callPackage ./legends-browser {};
|
|
|
|
|
2018-07-05 17:36:27 +02:00
|
|
|
twbt = callPackage ./twbt {};
|
2018-07-09 22:18:17 +02:00
|
|
|
themes = recurseIntoAttrs (callPackage ./themes {
|
2018-06-06 23:05:02 +02:00
|
|
|
stdenv = stdenvNoCC;
|
2018-07-09 22:18:17 +02:00
|
|
|
});
|
2018-06-06 23:05:02 +02:00
|
|
|
|
2018-07-08 21:44:29 +02:00
|
|
|
# aliases
|
2018-06-06 23:05:02 +02:00
|
|
|
phoebus-theme = themes.phoebus;
|
|
|
|
cla-theme = themes.cla;
|
2018-07-08 21:44:29 +02:00
|
|
|
dwarf-fortress-original = dwarf-fortress.dwarf-fortress;
|
2010-10-30 08:00:44 +02:00
|
|
|
};
|
2016-01-12 18:56:59 +01:00
|
|
|
|
2018-07-08 21:44:29 +02:00
|
|
|
in self // df-games
|