python312Packages.llm-gguf: init at 0.2 (#364926)
[NixPkgs.git] / pkgs / games / cataclysm-dda / lib.nix
blobaed4a1efd38cf9b04a1d38fe400210e7d47454f4
1 { callPackage }:
3 rec {
4   buildMod = callPackage ./builder.nix {
5     type = "mod";
6   };
8   buildSoundPack = callPackage ./builder.nix {
9     type = "soundpack";
10   };
12   buildTileSet = callPackage ./builder.nix {
13     type = "tileset";
14   };
16   wrapCDDA = callPackage ./wrapper.nix { };
18   # Required to fix `pkgs` and `withMods` attrs after applying `overrideAttrs`.
19   #
20   # Example:
21   #     let
22   #       myBuild = cataclysmDDA.jenkins.latest.tiles.overrideAttrs (_: {
23   #         x = "hello";
24   #       });
25   #
26   #       # This refers to the derivation before overriding! So, `badExample.x` is not accessible.
27   #       badExample = myBuild.withMods (_: []);
28   #
29   #       # `myBuild` is correctly referred by `withMods` and `goodExample.x` is accessible.
30   #       goodExample = let
31   #         inherit (cataclysmDDA) attachPkgs pkgs;
32   #       in
33   #       (attachPkgs pkgs myBuild).withMods (_: []);
34   #     in
35   #     goodExample.x  # returns "hello"
36   attachPkgs =
37     pkgs: super:
38     let
39       self = super.overrideAttrs (old: {
40         passthru = old.passthru // {
41           pkgs = pkgs.override { build = self; };
42           withMods = wrapCDDA self;
43         };
44       });
45     in
46     self;