diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/chicken/4/eggDerivation.nix')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/chicken/4/eggDerivation.nix | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/compilers/chicken/4/eggDerivation.nix b/nixpkgs/pkgs/development/compilers/chicken/4/eggDerivation.nix new file mode 100644 index 000000000000..4dc7ebe66717 --- /dev/null +++ b/nixpkgs/pkgs/development/compilers/chicken/4/eggDerivation.nix @@ -0,0 +1,44 @@ +{ stdenv, chicken, makeWrapper }: +{ name, src +, buildInputs ? [] +, chickenInstallFlags ? [] +, cscOptions ? [] +, ...} @ args: + +let + libPath = "${chicken}/var/lib/chicken/${toString chicken.binaryVersion}/"; + overrides = import ./overrides.nix; + baseName = (builtins.parseDrvName name).name; + override = if builtins.hasAttr baseName overrides + then + builtins.getAttr baseName overrides + else + {}; +in +stdenv.mkDerivation ({ + name = "chicken-${name}"; + propagatedBuildInputs = buildInputs; + buildInputs = [ makeWrapper chicken ]; + + CSC_OPTIONS = stdenv.lib.concatStringsSep " " cscOptions; + + CHICKEN_REPOSITORY = libPath; + CHICKEN_INSTALL_PREFIX = "$out"; + + installPhase = '' + runHook preInstall + + chicken-install -p $out ${stdenv.lib.concatStringsSep " " chickenInstallFlags} + + for f in $out/bin/* + do + wrapProgram $f \ + --set CHICKEN_REPOSITORY $CHICKEN_REPOSITORY \ + --prefix CHICKEN_REPOSITORY_EXTRA : "$out/lib/chicken/${toString chicken.binaryVersion}/:$CHICKEN_REPOSITORY_EXTRA" \ + --prefix CHICKEN_INCLUDE_PATH \; "$CHICKEN_INCLUDE_PATH;$out/share/" \ + --prefix PATH : "$out/bin:${chicken}/bin:$CHICKEN_REPOSITORY_EXTRA:$CHICKEN_REPOSITORY" + done + + runHook postInstall + ''; +} // (builtins.removeAttrs args ["name" "buildInputs"]) // override) |