nixpkgs/pkgs/development/perl-modules/generic/default.nix
Shea Levy 306d5cdf03
perlPackages: Add cross-compilation support.
This involved:

* Installing miniperl as $dev/bin/perl
* Setting miniperl to take INC from
  lib/perl5/{site_perl/,}cross_perl/${version} as well as
  lib/perl5/{site_perl/,}/${version}/${runtimeArch}, in that
  order. miniperl taking from runtimeArch is not really correct, but
  it works in some pure-perl cases (e.g. Config.pm) and can be
  overridden with the cross_perl variant.
* Installing perl-cross's stubs into
  $dev/lib/perl5/cross_perl/${version}
* Patching MakeMaker.pm to gracefully degrade (very slightly) if B.pm
  can't be loaded, which it can't in cross-compilation.
* Passing the right build-time and runtime perls to Makefile.PL
2018-02-28 15:01:32 -05:00

33 lines
740 B
Nix

perl:
{ nativeBuildInputs ? [], name, ... } @ attrs:
perl.stdenv.mkDerivation (
{
outputs = [ "out" "devdoc" ];
doCheck = true;
checkTarget = "test";
# Prevent CPAN downloads.
PERL_AUTOINSTALL = "--skipdeps";
# Avoid creating perllocal.pod, which contains a timestamp
installTargets = "pure_install";
# From http://wiki.cpantesters.org/wiki/CPANAuthorNotes: "allows
# authors to skip certain tests (or include certain tests) when
# the results are not being monitored by a human being."
AUTOMATED_TESTING = true;
}
//
attrs
//
{
name = "perl-" + name;
builder = ./builder.sh;
nativeBuildInputs = nativeBuildInputs ++ [ (perl.dev or perl) ];
inherit perl;
}
)