about summary refs log tree commit diff
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 f0a049bb4b230..b48abb34611cb 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 dd4ed5e1bbf8f..26d868a8e7c4f 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;
+      };
+
 }