7797e1a1dd
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.
53 lines
1.8 KiB
Nix
53 lines
1.8 KiB
Nix
{ stdenv, pkgs, erlang, overrides ? (self: super: {}) }:
|
|
|
|
let
|
|
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;
|
|
mkScope = scope: pkgs // scope;
|
|
|
|
packages = self:
|
|
let
|
|
defaultScope = mkScope self;
|
|
callPackage = drv: args: callPackageWithScope defaultScope drv args;
|
|
in
|
|
import ./hex-packages.nix {
|
|
inherit pkgs stdenv callPackage;
|
|
} // {
|
|
inherit callPackage erlang;
|
|
beamPackages = self;
|
|
|
|
rebar = callPackage ../tools/build-managers/rebar { };
|
|
rebar3-open = callPackage ../tools/build-managers/rebar3 {
|
|
hermeticRebar3 = false;
|
|
};
|
|
rebar3 = callPackage ../tools/build-managers/rebar3 {
|
|
hermeticRebar3 = true;
|
|
};
|
|
|
|
hexRegistrySnapshot = callPackage ./hex-registry-snapshot.nix { };
|
|
fetchHex = callPackage ./fetch-hex.nix { };
|
|
|
|
buildRebar3 = callPackage ./build-rebar3.nix {};
|
|
buildHex = callPackage ./build-hex.nix {};
|
|
buildErlangMk = callPackage ./build-erlang-mk.nix {};
|
|
buildMix = callPackage ./build-mix.nix {};
|
|
|
|
# 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 {};
|
|
relxExe = callPackage ../tools/erlang/relx-exe {};
|
|
};
|
|
in fix' (extends overrides packages)
|