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