Merge pull request #119126 from fabaff/pycomfoconnect
[NixPkgs.git] / pkgs / development / beam-modules / lib.nix
blob1b021cf934722e88d2b7ef4b7f500b148a37c322
1 { pkgs, lib }:
3 rec {
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);
13   callPackage = callPackageWith pkgs;
15   /* Uses generic-builder to evaluate provided drv containing OTP-version
16   specific data.
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;
23   Arguments passed to the generic-builder are overridable, used to
24   enable/disable high-level OTP features, like ODBC or WX support;
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       };
37   /* Uses generic-builder to evaluate provided drv containing Elixir version
38   specific data.
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;
45   Arguments passed to the generic-builder are overridable.
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       };
58   /* Uses generic-builder to evaluate provided drv containing Elixir version
59   specific data.
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;
66   Arguments passed to the generic-builder are overridable.
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       };