1{ pkgs, config, idris-no-deps, overrides ? (self: super: {}) }: let
2 inherit (pkgs.lib) callPackageWith fix' extends;
3
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 };
8
9 mkScope = scope : pkgs // pkgs.xorg // pkgs.gnome2 // scope;
10
11 idrisPackages = self: let
12 defaultScope = mkScope self;
13
14 callPackage = callPackageWithScope defaultScope;
15
16 builtins_ = pkgs.lib.mapAttrs self.build-builtin-package {
17 prelude = [];
18
19 base = [ self.prelude ];
20
21 contrib = [ self.prelude self.base ];
22
23 effects = [ self.prelude self.base ];
24
25 pruviloj = [ self.prelude self.base ];
26 };
27
28 in
29 {
30 inherit idris-no-deps callPackage;
31
32 # Idris wrapper with specified compiler and library paths, used to build packages
33
34 idris = pkgs.callPackage ./idris-wrapper.nix {
35 inherit idris-no-deps;
36 };
37
38 # Utilities for building packages
39
40 with-packages = callPackage ./with-packages.nix {} ;
41
42 build-builtin-package = callPackage ./build-builtin-package.nix {};
43
44 build-idris-package = callPackage ./build-idris-package.nix {};
45
46 # The set of libraries that comes with idris
47
48 builtins = pkgs.lib.mapAttrsToList (name: value: value) builtins_;
49
50 # Libraries
51
52 array = callPackage ./array.nix {};
53
54 bi = callPackage ./bi.nix {};
55
56 bifunctors = callPackage ./bifunctors.nix {};
57
58 bytes = callPackage ./bytes.nix {};
59
60 canvas = callPackage ./canvas.nix {};
61
62 categories = callPackage ./categories.nix {};
63
64 coda = callPackage ./coda.nix {};
65
66 config = callPackage ./config.nix {};
67
68 comonad = callPackage ./comonad.nix {};
69
70 composition = callPackage ./composition.nix {};
71
72 console = callPackage ./console.nix {};
73
74 containers = callPackage ./containers.nix {};
75
76 cube = callPackage ./cube.nix {};
77
78 derive = callPackage ./derive.nix {};
79
80 descncrunch = callPackage ./descncrunch.nix {};
81
82 dict = callPackage ./dict.nix {};
83
84 dom = callPackage ./dom.nix {};
85
86 electron = callPackage ./electron.nix {};
87
88 eternal = callPackage ./eternal.nix {};
89
90 farrp = callPackage ./farrp.nix {};
91
92 free = callPackage ./free.nix {};
93
94 fsm = callPackage ./fsm.nix {};
95
96 glfw = callPackage ./glfw.nix {};
97
98 graphviz = callPackage ./graphviz.nix {};
99
100 hamt = callPackage ./hamt.nix {};
101
102 html = callPackage ./html.nix {};
103
104 hezarfen = callPackage ./hezarfen.nix {};
105
106 hrtime = callPackage ./hrtime.nix {};
107
108 http = callPackage ./http.nix {};
109
110 http4idris = callPackage ./http4idris.nix {};
111
112 iaia = callPackage ./iaia.nix {};
113
114 idrishighlighter = callPackage ./idrishighlighter.nix {};
115
116 idrisscript = callPackage ./idrisscript.nix {};
117
118 ipkgparser = callPackage ./ipkgparser.nix {};
119
120 jheiling-extras = callPackage ./jheiling-extras.nix {};
121
122 jheiling-js = callPackage ./jheiling-js.nix {};
123
124 js = callPackage ./js.nix {};
125
126 lens = callPackage ./lens.nix {};
127
128 lightyear = callPackage ./lightyear.nix {};
129
130 logic = callPackage ./logic.nix {};
131
132 mapping = callPackage ./mapping.nix {};
133
134 mhd = callPackage ./mhd.nix {};
135
136 pacman = callPackage ./pacman.nix {};
137
138 patricia = callPackage ./patricia.nix {};
139
140 permutations = callPackage ./permutations.nix {};
141
142 pfds = callPackage ./pfds.nix {};
143
144 pipes = callPackage ./pipes.nix {};
145
146 posix = callPackage ./posix.nix {};
147
148 quantities = callPackage ./quantities.nix {};
149
150 rationals = callPackage ./rationals.nix {};
151
152 recursion_schemes = callPackage ./recursion_schemes.nix {};
153
154 refined = callPackage ./refined.nix {};
155
156 sdl = callPackage ./sdl.nix {};
157
158 sdl2 = callPackage ./sdl2.nix {};
159
160 semidirect = callPackage ./semidirect.nix {};
161
162 setoids = callPackage ./setoids.nix {};
163
164 smproc = callPackage ./smproc.nix {};
165
166 snippets = callPackage ./snippets.nix {};
167
168 software_foundations = callPackage ./software_foundations.nix {};
169
170 specdris = callPackage ./specdris.nix {};
171
172 tap = callPackage ./tap.nix {};
173
174 test = callPackage ./test.nix {};
175
176 tf-random = callPackage ./tfrandom.nix {};
177
178 tlhydra = callPackage ./tlhydra.nix {};
179
180 tomladris = callPackage ./tomladris.nix {};
181
182 tp = callPackage ./tp.nix {};
183
184 tparsec = callPackage ./tparsec.nix {};
185
186 transducers = callPackage ./transducers.nix {};
187
188 trees = callPackage ./trees.nix {};
189
190 union_type = callPackage ./union_type.nix {};
191
192 vdom = callPackage ./vdom.nix {};
193
194 vecspace = callPackage ./vecspace.nix {};
195
196 webgl = callPackage ./webgl.nix {};
197
198 wl-pprint = callPackage ./wl-pprint.nix {};
199
200 wyvern = callPackage ./wyvern.nix {};
201
202 xhr = callPackage ./xhr.nix {};
203
204 yaml = callPackage ./yaml.nix {};
205
206 yampa = callPackage ./yampa.nix {};
207
208 } // builtins_ // pkgs.lib.optionalAttrs config.allowAliases {
209 # removed packages
210 protobuf = throw "idrisPackages.protobuf has been removed: abandoned by upstream"; # Added 2022-02-06
211 };
212in fix' (extends overrides idrisPackages)