at 23.11-beta 212 lines 5.2 kB view raw
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)