1{ pkgs, stdenv }:
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 (stdenv.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 inherit (stdenv.lib) versionAtLeast;
53 builder = callPackage ../interpreters/elixir/generic-builder.nix args;
54 in
55 callPackage drv {
56 mkDerivation = pkgs.makeOverridable builder;
57 };
58
59 /* Uses generic-builder to evaluate provided drv containing Elixir version
60 specific data.
61
62 drv: package containing version-specific args;
63 builder: generic builder for all Erlang versions;
64 args: arguments merged into version-specific args, used mostly to customize
65 dependencies;
66
67 Arguments passed to the generic-builder are overridable.
68
69 Please note that "mkDerivation" defined here is the one called from 1.2.nix
70 and similar files.
71 */
72 callLFE = drv: args:
73 let
74 inherit (stdenv.lib) versionAtLeast;
75 builder = callPackage ../interpreters/lfe/generic-builder.nix args;
76 in
77 callPackage drv {
78 mkDerivation = pkgs.makeOverridable builder;
79 };
80
81}