diff options
author | Justin Wood <justin.k.wood@gmail.com> | 2017-06-23 12:38:10 -0400 |
---|---|---|
committer | Justin Wood <justin.k.wood@gmail.com> | 2017-06-26 23:13:58 -0400 |
commit | 3595f8e8d69e10b4989052e52ba4f08ce30857d2 (patch) | |
tree | a42f13cf949398acc5ab437cef86ba6dacbdc9ea | |
parent | 838956b179f786eb27a0d21eeddd5909f083ee29 (diff) | |
download | nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.tar nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.tar.gz nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.tar.bz2 nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.tar.lz nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.tar.xz nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.tar.zst nixlib-3595f8e8d69e10b4989052e52ba4f08ce30857d2.zip |
Add in scope rebar version
-rw-r--r-- | pkgs/development/beam-modules/default.nix | 24 | ||||
-rw-r--r-- | pkgs/development/beam-modules/lib.nix | 27 |
2 files changed, 33 insertions, 18 deletions
diff --git a/pkgs/development/beam-modules/default.nix b/pkgs/development/beam-modules/default.nix index d54520212a51..07cc2ebd94b7 100644 --- a/pkgs/development/beam-modules/default.nix +++ b/pkgs/development/beam-modules/default.nix @@ -39,21 +39,17 @@ let # BEAM-based languages. elixir = defaultScope.elixir-1_4; - elixir-1_4 = if versionAtLeast (lib.getVersion erlang) "18" - then - lib.callElixir ../interpreters/elixir/1.4.nix { - debugInfo = true; - erlang = erlang; - } - else throw "Elixir requires at least Erlang/OTP R18."; + elixir-1_4 = lib.callElixir ../interpreters/elixir/1.4.nix "18" { + debugInfo = true; + erlang = erlang; + rebar = defaultScope.rebar; + }; - elixir-1_3 = if versionAtLeast (lib.getVersion erlang) "18" - then - lib.callElixir ../interpreters/elixir/1.3.nix { - debugInfo = true; - erlang = erlang; - } - else throw "Elixir requires at least Erlang/OTP R18."; + elixir-1_3 = lib.callElixir ../interpreters/elixir/1.3.nix "18" { + debugInfo = true; + erlang = erlang; + rebar = defaultScope.rebar; + }; lfe = callPackage ../interpreters/lfe { }; diff --git a/pkgs/development/beam-modules/lib.nix b/pkgs/development/beam-modules/lib.nix index 9d7a4bbd34ed..df0af4057637 100644 --- a/pkgs/development/beam-modules/lib.nix +++ b/pkgs/development/beam-modules/lib.nix @@ -43,12 +43,31 @@ rec { mkDerivation = pkgs.makeOverridable builder; }; - callElixir = drv: args: + /* Uses generic-builder to evaluate provided drv containing Elixir version + specific data. + + drv: package containing version-specific args; + vsn: minimum OTP version that Elixir will build on; + 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. + */ + callElixir = drv: vsn: args: let + inherit (stdenv.lib) versionAtLeast; builder = callPackage ../../development/interpreters/elixir/generic-builder.nix args; in - callPackage drv { - mkDerivation = pkgs.makeOverridable builder; - }; + if versionAtLeast (getVersion args.erlang) vsn + then + callPackage drv { + mkDerivation = pkgs.makeOverridable builder; + } + else + throw "Elixir requires at least Erlang/OTP R${vsn}."; } |