diff options
author | Gleb Peregud <gleber.p@gmail.com> | 2017-06-18 19:24:18 +0200 |
---|---|---|
committer | Gleb Peregud <gleber.p@gmail.com> | 2017-06-19 19:58:57 +0200 |
commit | 7797e1a1dda661476dbb312b1f26896d32831ef5 (patch) | |
tree | 7ab150bfd684e3dce569ef571c5fe8649eea5f12 /pkgs/development/beam-modules/default.nix | |
parent | f66b0186dc9764b83ad76f9dcaec341b0f6f83a0 (diff) |
erlang: put Elixir/LFE into per-OTP packageset.
This makes beam.package.erlangR19.abnf to be actually built with R19,
instead of the default R18. It means that Elixir and LFE are provided in
two versions, one built with R18 and with R19.
Please note that Elixir does not build with R16 and R17 - trying to
access beam.packages.erlang{R16,R17}.elixir will throw an error.
Diffstat (limited to 'pkgs/development/beam-modules/default.nix')
-rw-r--r-- | pkgs/development/beam-modules/default.nix | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/pkgs/development/beam-modules/default.nix b/pkgs/development/beam-modules/default.nix index 00443350a7d9..0db695befe6d 100644 --- a/pkgs/development/beam-modules/default.nix +++ b/pkgs/development/beam-modules/default.nix @@ -1,7 +1,9 @@ { stdenv, pkgs, erlang, overrides ? (self: super: {}) }: let - inherit (stdenv.lib) fix' extends; + inherit (stdenv.lib) fix' extends getVersion versionAtLeast; + + lib = pkgs.callPackage ./lib.nix {}; # FIXME: add support for overrideScope callPackageWithScope = scope: drv: args: stdenv.lib.callPackageWith scope drv args; @@ -34,12 +36,18 @@ let buildErlangMk = callPackage ./build-erlang-mk.nix {}; buildMix = callPackage ./build-mix.nix {}; - ## Non hex packages + # BEAM-based languages. + elixir = if versionAtLeast (lib.getVersion erlang) "18" + then callPackage ../interpreters/elixir { debugInfo = true; } + else throw "Elixir requires at least Erlang/OTP R18."; + lfe = callPackage ../interpreters/lfe { }; + + # Non hex packages hex = callPackage ./hex {}; webdriver = callPackage ./webdriver {}; - hex2nix = callPackage ../tools/erlang/hex2nix { }; - cuter = callPackage ../tools/erlang/cuter { }; + hex2nix = callPackage ../tools/erlang/hex2nix {}; + cuter = callPackage ../tools/erlang/cuter {}; relxExe = callPackage ../tools/erlang/relx-exe {}; }; in fix' (extends overrides packages) |