Merge pull request #119126 from fabaff/pycomfoconnect
[NixPkgs.git] / pkgs / development / idris-modules / default.nix
blob7011a513c10124f206e5902a1c890792fa1c7b8a
1 { pkgs, idris-no-deps, overrides ? (self: super: {}) }: let
2   inherit (pkgs.lib) callPackageWith fix' extends;
4   /* Taken from haskell-modules/default.nix, should probably abstract this away */
5   callPackageWithScope = scope: drv: args: (callPackageWith scope drv args) // {
6     overrideScope = f: callPackageWithScope (mkScope (fix' (extends f scope.__unfix__))) drv args;
7   };
9   mkScope = scope : pkgs // pkgs.xorg // pkgs.gnome2 // scope;
11   idrisPackages = self: let
12     defaultScope = mkScope self;
14     callPackage = callPackageWithScope defaultScope;
16     builtins_ = pkgs.lib.mapAttrs self.build-builtin-package {
17       prelude = [];
19       base = [ self.prelude ];
21       contrib = [ self.prelude self.base ];
23       effects = [ self.prelude self.base ];
25       pruviloj = [ self.prelude self.base ];
26     };
28   in
29     {
30     inherit idris-no-deps callPackage;
32     # Idris wrapper with specified compiler and library paths, used to build packages
34     idris = pkgs.callPackage ./idris-wrapper.nix {
35       inherit idris-no-deps;
36     };
38     # Utilities for building packages
40     with-packages = callPackage ./with-packages.nix {} ;
42     build-builtin-package = callPackage ./build-builtin-package.nix {};
44     build-idris-package = callPackage ./build-idris-package.nix {};
46     # The set of libraries that comes with idris
48     builtins = pkgs.lib.mapAttrsToList (name: value: value) builtins_;
50     # Libraries
52     array = callPackage ./array.nix {};
54     bi = callPackage ./bi.nix {};
56     bifunctors = callPackage ./bifunctors.nix {};
58     bytes = callPackage ./bytes.nix {};
60     canvas = callPackage ./canvas.nix {};
62     categories = callPackage ./categories.nix {};
64     coda = callPackage ./coda.nix {};
66     config = callPackage ./config.nix {};
68     comonad = callPackage ./comonad.nix {};
70     composition = callPackage ./composition.nix {};
72     console = callPackage ./console.nix {};
74     containers = callPackage ./containers.nix {};
76     cube = callPackage ./cube.nix {};
78     data = callPackage ./data.nix {};
80     derive = callPackage ./derive.nix {};
82     descncrunch = callPackage ./descncrunch.nix {};
84     dict = callPackage ./dict.nix {};
86     dom = callPackage ./dom.nix {};
88     electron = callPackage ./electron.nix {};
90     eternal = callPackage ./eternal.nix {};
92     farrp = callPackage ./farrp.nix {};
94     free = callPackage ./free.nix {};
96     fsm = callPackage ./fsm.nix {};
98     glfw = callPackage ./glfw.nix {};
100     graphviz = callPackage ./graphviz.nix {};
102     hamt = callPackage ./hamt.nix {};
104     html = callPackage ./html.nix {};
106     hezarfen = callPackage ./hezarfen.nix {};
108     hrtime = callPackage ./hrtime.nix {};
110     http = callPackage ./http.nix {};
112     http4idris = callPackage ./http4idris.nix {};
114     iaia = callPackage ./iaia.nix {};
116     idrishighlighter = callPackage ./idrishighlighter.nix {};
118     idrisscript = callPackage ./idrisscript.nix {};
120     ipkgparser = callPackage ./ipkgparser.nix {};
122     jheiling-extras = callPackage ./jheiling-extras.nix {};
124     jheiling-js = callPackage ./jheiling-js.nix {};
126     js = callPackage ./js.nix {};
128     lens = callPackage ./lens.nix {};
130     lightyear = callPackage ./lightyear.nix {};
132     logic = callPackage ./logic.nix {};
134     mapping = callPackage ./mapping.nix {};
136     mhd = callPackage ./mhd.nix {};
138     pacman = callPackage ./pacman.nix {};
140     patricia = callPackage ./patricia.nix {};
142     permutations = callPackage ./permutations.nix {};
144     pfds = callPackage ./pfds.nix {};
146     pipes = callPackage ./pipes.nix {};
148     posix = callPackage ./posix.nix {};
150     protobuf = callPackage ./protobuf.nix {};
152     quantities = callPackage ./quantities.nix {};
154     rationals = callPackage ./rationals.nix {};
156     recursion_schemes = callPackage ./recursion_schemes.nix {};
158     refined = callPackage ./refined.nix {};
160     sdl = callPackage ./sdl.nix {};
162     sdl2 = callPackage ./sdl2.nix {};
164     semidirect = callPackage ./semidirect.nix {};
166     setoids = callPackage ./setoids.nix {};
168     smproc = callPackage ./smproc.nix {};
170     snippets = callPackage ./snippets.nix {};
172     software_foundations = callPackage ./software_foundations.nix {};
174     specdris = callPackage ./specdris.nix {};
176     tap = callPackage ./tap.nix {};
178     test = callPackage ./test.nix {};
180     tf-random = callPackage ./tfrandom.nix {};
182     tlhydra = callPackage ./tlhydra.nix {};
184     tomladris = callPackage ./tomladris.nix {};
186     tp = callPackage ./tp.nix {};
188     tparsec = callPackage ./tparsec.nix {};
190     transducers = callPackage ./transducers.nix {};
192     trees = callPackage ./trees.nix {};
194     union_type = callPackage ./union_type.nix {};
196     vdom = callPackage ./vdom.nix {};
198     vecspace = callPackage ./vecspace.nix {};
200     webgl = callPackage ./webgl.nix {};
202     wl-pprint = callPackage ./wl-pprint.nix {};
204     wyvern = callPackage ./wyvern.nix {};
206     xhr = callPackage ./xhr.nix {};
208     yaml = callPackage ./yaml.nix {};
210     yampa = callPackage ./yampa.nix {};
212   } // builtins_;
213 in fix' (extends overrides idrisPackages)