aboutsummaryrefslogtreecommitdiff
path: root/pkgs/development/beam-modules/default.nix
diff options
context:
space:
mode:
authorGleb Peregud <gleber.p@gmail.com>2017-06-18 19:24:18 +0200
committerGleb Peregud <gleber.p@gmail.com>2017-06-19 19:58:57 +0200
commit7797e1a1dda661476dbb312b1f26896d32831ef5 (patch)
tree7ab150bfd684e3dce569ef571c5fe8649eea5f12 /pkgs/development/beam-modules/default.nix
parentf66b0186dc9764b83ad76f9dcaec341b0f6f83a0 (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.nix16
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)