1{ __splicedPackages, lib }:
2
3let
4 pkgs = __splicedPackages;
5in
6rec {
7
8 /* Similar to callPackageWith/callPackage, but without makeOverridable
9 */
10 callPackageWith = autoArgs: fn: args:
11 let
12 f = if pkgs.lib.isFunction fn then fn else import fn;
13 auto = builtins.intersectAttrs (lib.functionArgs f) autoArgs;
14 in f (auto // args);
15
16 callPackage = callPackageWith pkgs;
17
18 /* Uses generic-builder to evaluate provided drv containing OTP-version
19 specific data.
20
21 drv: package containing version-specific args;
22 builder: generic builder for all Erlang versions;
23 args: arguments merged into version-specific args, used mostly to customize
24 dependencies;
25
26 Arguments passed to the generic-builder are overridable, used to
27 enable/disable high-level OTP features, like ODBC or WX support;
28
29 Please note that "mkDerivation" defined here is the one called from R16.nix
30 and similar files.
31 */
32 callErlang = drv: args:
33 let
34 builder = callPackage ../../development/interpreters/erlang/generic-builder.nix args;
35 in
36 callPackage drv {
37 mkDerivation = pkgs.makeOverridable builder;
38 };
39
40 /* Uses generic-builder to evaluate provided drv containing Elixir version
41 specific data.
42
43 drv: package containing version-specific args;
44 builder: generic builder for all Erlang versions;
45 args: arguments merged into version-specific args, used mostly to customize
46 dependencies;
47
48 Arguments passed to the generic-builder are overridable.
49
50 Please note that "mkDerivation" defined here is the one called from 1.4.nix
51 and similar files.
52 */
53 callElixir = drv: args:
54 let
55 builder = callPackage ../interpreters/elixir/generic-builder.nix args;
56 in
57 callPackage drv {
58 mkDerivation = pkgs.makeOverridable builder;
59 };
60
61 /* Uses generic-builder to evaluate provided drv containing Elixir version
62 specific data.
63
64 drv: package containing version-specific args;
65 builder: generic builder for all Erlang versions;
66 args: arguments merged into version-specific args, used mostly to customize
67 dependencies;
68
69 Arguments passed to the generic-builder are overridable.
70
71 Please note that "mkDerivation" defined here is the one called from 1.2.nix
72 and similar files.
73 */
74 callLFE = drv: args:
75 let
76 builder = callPackage ../interpreters/lfe/generic-builder.nix args;
77 in
78 callPackage drv {
79 mkDerivation = pkgs.makeOverridable builder;
80 };
81
82}