a554e12833
The idris2 Makefile tries to use different versions of sed depending on the OS, but nix always uses the same version. Because the version of sed that is expected on macOS doesn't exist in the nix environment, the build fails. Setting the OS to empty string resolves the issue.
45 lines
1.1 KiB
Nix
45 lines
1.1 KiB
Nix
{ stdenv, fetchFromGitHub, makeWrapper
|
|
, clang, chez
|
|
}:
|
|
|
|
# Uses scheme to bootstrap the build of idris2
|
|
stdenv.mkDerivation rec {
|
|
name = "idris2";
|
|
version = "0.2.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "idris-lang";
|
|
repo = "Idris2";
|
|
rev = "v${version}";
|
|
sha256 = "153z6zgb90kglw8rspk8ph5gh5nkplhi27mxai6yqbbjs2glx5d4";
|
|
};
|
|
|
|
strictDeps = true;
|
|
nativeBuildInputs = [ makeWrapper clang chez ];
|
|
buildInputs = [ chez ];
|
|
|
|
prePatch = ''
|
|
patchShebangs --build tests
|
|
'';
|
|
|
|
makeFlags = [ "PREFIX=$(out)" ]
|
|
++ stdenv.lib.optional stdenv.isDarwin "OS=";
|
|
|
|
# The name of the main executable of pkgs.chez is `scheme`
|
|
buildFlags = [ "bootstrap-build" "SCHEME=scheme" ];
|
|
|
|
checkTarget = "bootstrap-test";
|
|
|
|
# idris2 needs to find scheme at runtime to compile
|
|
postInstall = ''
|
|
wrapProgram "$out/bin/idris2" --set CHEZ "${chez}/bin/scheme"
|
|
'';
|
|
|
|
meta = {
|
|
description = "A purely functional programming language with first class types";
|
|
homepage = "https://github.com/idris-lang/Idris2";
|
|
license = stdenv.lib.licenses.bsd3;
|
|
maintainers = with stdenv.lib.maintainers; [ wchresta ];
|
|
inherit (chez.meta) platforms;
|
|
};
|
|
}
|