Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / compilers / chicken / 5 / eggDerivation.nix
blob2d2462355928e3a2c2e47343edc64026d12a7166
1 { callPackage, lib, stdenv, chicken, makeWrapper }:
2 { name, src
3 , buildInputs ? []
4 , chickenInstallFlags ? []
5 , cscOptions          ? []
6 , ...} @ args:
8 let
9   overrides = callPackage ./overrides.nix { };
10   baseName = lib.getName name;
11   override = if builtins.hasAttr baseName overrides
12    then
13      builtins.getAttr baseName overrides
14    else
15      lib.id;
17 (stdenv.mkDerivation ({
18   name = "chicken-${name}";
19   propagatedBuildInputs = buildInputs;
20   nativeBuildInputs = [ chicken makeWrapper ];
21   buildInputs = [ chicken ];
23   strictDeps = true;
25   CSC_OPTIONS = lib.concatStringsSep " " cscOptions;
27   buildPhase = ''
28     runHook preBuild
29     chicken-install -cached -no-install -host ${lib.escapeShellArgs chickenInstallFlags}
30     runHook postBuild
31   '';
33   installPhase = ''
34     runHook preInstall
36     export CHICKEN_INSTALL_PREFIX=$out
37     export CHICKEN_INSTALL_REPOSITORY=$out/lib/chicken/${toString chicken.binaryVersion}
38     chicken-install -cached -host ${lib.escapeShellArgs chickenInstallFlags}
40     for f in $out/bin/*
41     do
42       wrapProgram $f \
43         --prefix CHICKEN_REPOSITORY_PATH : "$out/lib/chicken/${toString chicken.binaryVersion}:$CHICKEN_REPOSITORY_PATH" \
44         --prefix CHICKEN_INCLUDE_PATH : "$CHICKEN_INCLUDE_PATH:$out/share" \
45         --prefix PATH : "$out/bin:${chicken}/bin:$CHICKEN_REPOSITORY_PATH"
46     done
48     runHook postInstall
49   '';
51   dontConfigure = true;
53   meta = {
54     inherit (chicken.meta) platforms;
55   } // args.meta or {};
56 } // builtins.removeAttrs args ["name" "buildInputs" "meta"]) ).overrideAttrs override