nixpkgs/pkgs/development/idris-modules/default.nix
2021-05-08 20:03:28 +02:00

212 lines
4.9 KiB
Nix

{ pkgs, idris-no-deps, overrides ? (self: super: {}) }: let
inherit (pkgs.lib) callPackageWith fix' extends;
/* Taken from haskell-modules/default.nix, should probably abstract this away */
callPackageWithScope = scope: drv: args: (callPackageWith scope drv args) // {
overrideScope = f: callPackageWithScope (mkScope (fix' (extends f scope.__unfix__))) drv args;
};
mkScope = scope : pkgs // pkgs.xorg // pkgs.gnome2 // scope;
idrisPackages = self: let
defaultScope = mkScope self;
callPackage = callPackageWithScope defaultScope;
builtins_ = pkgs.lib.mapAttrs self.build-builtin-package {
prelude = [];
base = [ self.prelude ];
contrib = [ self.prelude self.base ];
effects = [ self.prelude self.base ];
pruviloj = [ self.prelude self.base ];
};
in
{
inherit idris-no-deps callPackage;
# Idris wrapper with specified compiler and library paths, used to build packages
idris = pkgs.callPackage ./idris-wrapper.nix {
inherit idris-no-deps;
};
# Utilities for building packages
with-packages = callPackage ./with-packages.nix {} ;
build-builtin-package = callPackage ./build-builtin-package.nix {};
build-idris-package = callPackage ./build-idris-package.nix {};
# The set of libraries that comes with idris
builtins = pkgs.lib.mapAttrsToList (name: value: value) builtins_;
# Libraries
array = callPackage ./array.nix {};
bi = callPackage ./bi.nix {};
bifunctors = callPackage ./bifunctors.nix {};
bytes = callPackage ./bytes.nix {};
canvas = callPackage ./canvas.nix {};
categories = callPackage ./categories.nix {};
coda = callPackage ./coda.nix {};
config = callPackage ./config.nix {};
comonad = callPackage ./comonad.nix {};
composition = callPackage ./composition.nix {};
console = callPackage ./console.nix {};
containers = callPackage ./containers.nix {};
cube = callPackage ./cube.nix {};
derive = callPackage ./derive.nix {};
descncrunch = callPackage ./descncrunch.nix {};
dict = callPackage ./dict.nix {};
dom = callPackage ./dom.nix {};
electron = callPackage ./electron.nix {};
eternal = callPackage ./eternal.nix {};
farrp = callPackage ./farrp.nix {};
free = callPackage ./free.nix {};
fsm = callPackage ./fsm.nix {};
glfw = callPackage ./glfw.nix {};
graphviz = callPackage ./graphviz.nix {};
hamt = callPackage ./hamt.nix {};
html = callPackage ./html.nix {};
hezarfen = callPackage ./hezarfen.nix {};
hrtime = callPackage ./hrtime.nix {};
http = callPackage ./http.nix {};
http4idris = callPackage ./http4idris.nix {};
iaia = callPackage ./iaia.nix {};
idrishighlighter = callPackage ./idrishighlighter.nix {};
idrisscript = callPackage ./idrisscript.nix {};
ipkgparser = callPackage ./ipkgparser.nix {};
jheiling-extras = callPackage ./jheiling-extras.nix {};
jheiling-js = callPackage ./jheiling-js.nix {};
js = callPackage ./js.nix {};
lens = callPackage ./lens.nix {};
lightyear = callPackage ./lightyear.nix {};
logic = callPackage ./logic.nix {};
mapping = callPackage ./mapping.nix {};
mhd = callPackage ./mhd.nix {};
pacman = callPackage ./pacman.nix {};
patricia = callPackage ./patricia.nix {};
permutations = callPackage ./permutations.nix {};
pfds = callPackage ./pfds.nix {};
pipes = callPackage ./pipes.nix {};
posix = callPackage ./posix.nix {};
protobuf = callPackage ./protobuf.nix {};
quantities = callPackage ./quantities.nix {};
rationals = callPackage ./rationals.nix {};
recursion_schemes = callPackage ./recursion_schemes.nix {};
refined = callPackage ./refined.nix {};
sdl = callPackage ./sdl.nix {};
sdl2 = callPackage ./sdl2.nix {};
semidirect = callPackage ./semidirect.nix {};
setoids = callPackage ./setoids.nix {};
smproc = callPackage ./smproc.nix {};
snippets = callPackage ./snippets.nix {};
software_foundations = callPackage ./software_foundations.nix {};
specdris = callPackage ./specdris.nix {};
tap = callPackage ./tap.nix {};
test = callPackage ./test.nix {};
tf-random = callPackage ./tfrandom.nix {};
tlhydra = callPackage ./tlhydra.nix {};
tomladris = callPackage ./tomladris.nix {};
tp = callPackage ./tp.nix {};
tparsec = callPackage ./tparsec.nix {};
transducers = callPackage ./transducers.nix {};
trees = callPackage ./trees.nix {};
union_type = callPackage ./union_type.nix {};
vdom = callPackage ./vdom.nix {};
vecspace = callPackage ./vecspace.nix {};
webgl = callPackage ./webgl.nix {};
wl-pprint = callPackage ./wl-pprint.nix {};
wyvern = callPackage ./wyvern.nix {};
xhr = callPackage ./xhr.nix {};
yaml = callPackage ./yaml.nix {};
yampa = callPackage ./yampa.nix {};
} // builtins_;
in fix' (extends overrides idrisPackages)