about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/compilers/chicken/5/eggDerivation.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/chicken/5/eggDerivation.nix')
-rw-r--r--nixpkgs/pkgs/development/compilers/chicken/5/eggDerivation.nix41
1 files changed, 41 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/compilers/chicken/5/eggDerivation.nix b/nixpkgs/pkgs/development/compilers/chicken/5/eggDerivation.nix
new file mode 100644
index 000000000000..3dc1c4afce98
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/chicken/5/eggDerivation.nix
@@ -0,0 +1,41 @@
+{ stdenv, chicken, makeWrapper }:
+{ name, src
+, buildInputs ? []
+, chickenInstallFlags ? []
+, cscOptions          ? []
+, ...} @ args:
+
+let
+  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;
+
+  installPhase = ''
+    runHook preInstall
+
+    export CHICKEN_INSTALL_PREFIX=$out
+    export CHICKEN_INSTALL_REPOSITORY=$out/lib/chicken/${toString chicken.binaryVersion}
+    chicken-install ${stdenv.lib.concatStringsSep " " chickenInstallFlags}
+
+    for f in $out/bin/*
+    do
+      wrapProgram $f \
+        --prefix CHICKEN_REPOSITORY_PATH : "$out/lib/chicken/${toString chicken.binaryVersion}/:$CHICKEN_REPOSITORY_PATH" \
+        --prefix CHICKEN_INCLUDE_PATH : "$CHICKEN_INCLUDE_PATH:$out/share/" \
+        --prefix PATH : "$out/bin:${chicken}/bin:$CHICKEN_REPOSITORY_PATH"
+    done
+
+    runHook postInstall
+  '';
+} // (builtins.removeAttrs args ["name" "buildInputs"]) // override)