Merge pull request #119126 from fabaff/pycomfoconnect
[NixPkgs.git] / pkgs / development / compilers / chicken / 4 / eggDerivation.nix
blob10cf91579a404cee19eb29166257dc23d28713cb
1 { lib, stdenv, chicken, makeWrapper }:
2 { name, src
3 , buildInputs ? []
4 , chickenInstallFlags ? []
5 , cscOptions          ? []
6 , ...} @ args:
8 let
9   libPath = "${chicken}/var/lib/chicken/${toString chicken.binaryVersion}/";
10   overrides = import ./overrides.nix;
11   baseName = lib.getName name;
12   override = if builtins.hasAttr baseName overrides
13    then
14      builtins.getAttr baseName overrides
15    else
16      {};
18 stdenv.mkDerivation ({
19   name = "chicken-${name}";
20   propagatedBuildInputs = buildInputs;
21   nativeBuildInputs = [ makeWrapper ];
22   buildInputs = [ chicken ];
24   CSC_OPTIONS = lib.concatStringsSep " " cscOptions;
26   CHICKEN_REPOSITORY = libPath;
27   CHICKEN_INSTALL_PREFIX = "$out";
29   installPhase = ''
30     runHook preInstall
32     chicken-install -p $out ${lib.concatStringsSep " " chickenInstallFlags}
34     for f in $out/bin/*
35     do
36       wrapProgram $f \
37         --set CHICKEN_REPOSITORY $CHICKEN_REPOSITORY \
38         --prefix CHICKEN_REPOSITORY_EXTRA : "$out/lib/chicken/${toString chicken.binaryVersion}/:$CHICKEN_REPOSITORY_EXTRA" \
39         --prefix CHICKEN_INCLUDE_PATH \; "$CHICKEN_INCLUDE_PATH;$out/share/" \
40         --prefix PATH : "$out/bin:${chicken}/bin:$CHICKEN_REPOSITORY_EXTRA:$CHICKEN_REPOSITORY"
41     done
43     runHook postInstall
44   '';
45 } // (builtins.removeAttrs args ["name" "buildInputs"]) // override)