aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/games/cataclysm-dda/builder.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/games/cataclysm-dda/builder.nix')
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/builder.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/builder.nix b/nixpkgs/pkgs/games/cataclysm-dda/builder.nix
new file mode 100644
index 00000000000..24128875f3a
--- /dev/null
+++ b/nixpkgs/pkgs/games/cataclysm-dda/builder.nix
@@ -0,0 +1,49 @@
+{ stdenvNoCC, lib, type }:
+
+assert lib.elem type [
+ "mod"
+ "soundpack"
+ "tileset"
+];
+
+{ modName, version, src, ... } @ args:
+
+stdenvNoCC.mkDerivation (args // rec {
+ pname = args.pname or "cataclysm-dda-${type}-${modName}";
+
+ modRoot = args.modRoot or ".";
+
+ configurePhase = args.configurePhase or ''
+ runHook preConfigure
+ runHook postConfigure
+ '';
+
+ buildPhase = args.buildPhase or ''
+ runHook preBuild
+ runHook postBuild
+ '';
+
+ checkPhase = args.checkPhase or ''
+ runHook preCheck
+ runHook postCheck
+ '';
+
+ installPhase = let
+ baseDir = {
+ mod = "mods";
+ soundpack = "sound";
+ tileset = "gfx";
+ }.${type};
+ in args.installPhase or ''
+ runHook preInstall
+ destdir="$out/share/cataclysm-dda/${baseDir}"
+ mkdir -p "$destdir"
+ cp -R "${modRoot}" "$destdir/${modName}"
+ runHook postInstall
+ '';
+
+ passthru = {
+ forTiles = true;
+ forCurses = type == "mod";
+ };
+})