aboutsummaryrefslogtreecommitdiff
path: root/pkgs/development/beam-modules
diff options
context:
space:
mode:
authorJustin Wood <justin.k.wood@gmail.com>2017-07-10 20:25:12 -0400
committerJustin Wood <justin.k.wood@gmail.com>2017-07-10 20:37:33 -0400
commitc87d4d4a19eda532fbb4a294257f124556539ebc (patch)
tree49790d9b81b61257d979e8c533a409ce5e08564d /pkgs/development/beam-modules
parent46dc5394cd995f0b5ba6c842424d1de594fead31 (diff)
Generalize building of LFE
Diffstat (limited to 'pkgs/development/beam-modules')
-rw-r--r--pkgs/development/beam-modules/default.nix3
-rw-r--r--pkgs/development/beam-modules/lib.nix22
2 files changed, 24 insertions, 1 deletions
diff --git a/pkgs/development/beam-modules/default.nix b/pkgs/development/beam-modules/default.nix
index f0a049bb4b2..b48abb34611 100644
--- a/pkgs/development/beam-modules/default.nix
+++ b/pkgs/development/beam-modules/default.nix
@@ -54,7 +54,8 @@ let
debugInfo = true;
};
- lfe = callPackage ../interpreters/lfe { };
+ lfe = lfe_1_2;
+ lfe_1_2 = lib.callLFE ../interpreters/lfe/1.2.nix { inherit erlang buildRebar3; };
# Non hex packages
hex = callPackage ./hex {};
diff --git a/pkgs/development/beam-modules/lib.nix b/pkgs/development/beam-modules/lib.nix
index dd4ed5e1bbf..26d868a8e7c 100644
--- a/pkgs/development/beam-modules/lib.nix
+++ b/pkgs/development/beam-modules/lib.nix
@@ -56,4 +56,26 @@ rec {
mkDerivation = pkgs.makeOverridable builder;
};
+ /* 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
+ inherit (stdenv.lib) versionAtLeast;
+ builder = callPackage ../interpreters/lfe/generic-builder.nix args;
+ in
+ callPackage drv {
+ mkDerivation = pkgs.makeOverridable builder;
+ };
+
}