nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ lib, stdenv, chicken, makeWrapper }:
2{ name, src
3, buildInputs ? []
4, chickenInstallFlags ? []
5, cscOptions ? []
6, ...} @ args:
7
8let
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 {};
17in
18stdenv.mkDerivation ({
19 name = "chicken-${name}";
20 propagatedBuildInputs = buildInputs;
21 nativeBuildInputs = [ makeWrapper ];
22 buildInputs = [ chicken ];
23
24 CSC_OPTIONS = lib.concatStringsSep " " cscOptions;
25
26 CHICKEN_REPOSITORY = libPath;
27 CHICKEN_INSTALL_PREFIX = "$out";
28
29 installPhase = ''
30 runHook preInstall
31
32 chicken-install -p $out ${lib.concatStringsSep " " chickenInstallFlags}
33
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
42
43 runHook postInstall
44 '';
45
46 meta = {
47 inherit (chicken.meta) platforms;
48 } // args.meta or {};
49} // (builtins.removeAttrs args ["name" "buildInputs" "meta"]) // override)