2021-01-25 08:26:54 +00:00
|
|
|
{ pkgs, lib }:
|
2017-06-04 18:26:37 +00:00
|
|
|
|
|
|
|
rec {
|
|
|
|
|
2017-06-07 23:39:17 +00:00
|
|
|
/* Similar to callPackageWith/callPackage, but without makeOverridable
|
|
|
|
*/
|
|
|
|
callPackageWith = autoArgs: fn: args:
|
|
|
|
let
|
2018-01-31 19:02:19 +00:00
|
|
|
f = if pkgs.lib.isFunction fn then fn else import fn;
|
2021-01-23 17:15:07 +00:00
|
|
|
auto = builtins.intersectAttrs (lib.functionArgs f) autoArgs;
|
2017-06-07 23:39:17 +00:00
|
|
|
in f (auto // args);
|
|
|
|
|
|
|
|
callPackage = callPackageWith pkgs;
|
|
|
|
|
|
|
|
/* Uses generic-builder to evaluate provided drv containing OTP-version
|
|
|
|
specific data.
|
2017-06-04 18:26:37 +00:00
|
|
|
|
|
|
|
drv: package containing version-specific args;
|
|
|
|
builder: generic builder for all Erlang versions;
|
2017-06-07 23:39:17 +00:00
|
|
|
args: arguments merged into version-specific args, used mostly to customize
|
|
|
|
dependencies;
|
|
|
|
|
|
|
|
Arguments passed to the generic-builder are overridable, used to
|
|
|
|
enable/disable high-level OTP features, like ODBC or WX support;
|
2017-06-04 18:26:37 +00:00
|
|
|
|
2017-06-07 23:39:17 +00:00
|
|
|
Please note that "mkDerivation" defined here is the one called from R16.nix
|
|
|
|
and similar files.
|
2017-06-04 18:26:37 +00:00
|
|
|
*/
|
2017-06-07 23:39:17 +00:00
|
|
|
callErlang = drv: args:
|
|
|
|
let
|
|
|
|
builder = callPackage ../../development/interpreters/erlang/generic-builder.nix args;
|
|
|
|
in
|
|
|
|
callPackage drv {
|
|
|
|
mkDerivation = pkgs.makeOverridable builder;
|
|
|
|
};
|
2017-06-04 18:26:37 +00:00
|
|
|
|
2017-06-23 16:38:10 +00:00
|
|
|
/* Uses generic-builder to evaluate provided drv containing Elixir version
|
|
|
|
specific data.
|
|
|
|
|
|
|
|
drv: package containing version-specific args;
|
|
|
|
builder: generic builder for all Erlang versions;
|
|
|
|
args: arguments merged into version-specific args, used mostly to customize
|
|
|
|
dependencies;
|
|
|
|
|
|
|
|
Arguments passed to the generic-builder are overridable.
|
|
|
|
|
|
|
|
Please note that "mkDerivation" defined here is the one called from 1.4.nix
|
|
|
|
and similar files.
|
|
|
|
*/
|
2017-06-27 03:12:39 +00:00
|
|
|
callElixir = drv: args:
|
2017-06-23 00:34:32 +00:00
|
|
|
let
|
2017-06-24 13:44:48 +00:00
|
|
|
builder = callPackage ../interpreters/elixir/generic-builder.nix args;
|
2017-06-23 00:34:32 +00:00
|
|
|
in
|
2017-06-27 03:09:11 +00:00
|
|
|
callPackage drv {
|
|
|
|
mkDerivation = pkgs.makeOverridable builder;
|
|
|
|
};
|
2017-06-23 00:34:32 +00:00
|
|
|
|
2017-07-11 00:25:12 +00:00
|
|
|
/* Uses generic-builder to evaluate provided drv containing Elixir version
|
|
|
|
specific data.
|
|
|
|
|
|
|
|
drv: package containing version-specific args;
|
|
|
|
builder: generic builder for all Erlang versions;
|
|
|
|
args: arguments merged into version-specific args, used mostly to customize
|
|
|
|
dependencies;
|
|
|
|
|
|
|
|
Arguments passed to the generic-builder are overridable.
|
|
|
|
|
|
|
|
Please note that "mkDerivation" defined here is the one called from 1.2.nix
|
|
|
|
and similar files.
|
|
|
|
*/
|
|
|
|
callLFE = drv: args:
|
|
|
|
let
|
|
|
|
builder = callPackage ../interpreters/lfe/generic-builder.nix args;
|
|
|
|
in
|
|
|
|
callPackage drv {
|
|
|
|
mkDerivation = pkgs.makeOverridable builder;
|
|
|
|
};
|
|
|
|
|
2017-06-04 18:26:37 +00:00
|
|
|
}
|