build-bazel-package: added rm of extra local folders for toolchain configuration...
[NixPkgs.git] / pkgs / tools / graphics / diagrams-builder / default.nix
blob290059b1c114f58598baabb6163105c366826692
1 /*
2   If user need access to more haskell package for building his
3   diagrams, he simply has to pass these package through the
4   extra packages function as follow in `config.nix`:
6   ~~~
7   diagrams-builder.override {
8     extraPackages = self : [myHaskellPackage];
9   }
10   ­~~~
14   lib,
15   stdenv,
16   ghcWithPackages,
17   makeWrapper,
18   diagrams-builder,
19   extraPackages ? (self: [ ]),
22 let
24   # Used same technique as for the yiCustom package.
25   wrappedGhc = ghcWithPackages (self: [ diagrams-builder ] ++ extraPackages self);
26   ghc = lib.getExe' wrappedGhc "ghc";
28   exeWrapper = backend: ''
29     makeWrapper \
30     "${diagrams-builder}/bin/diagrams-builder-${backend}" "$out/bin/diagrams-builder-${backend}" \
31       --set NIX_GHC ${ghc} \
32       --set NIX_GHC_LIBDIR "$(${ghc} --print-libdir)"
33   '';
35   backends = [
36     "svg"
37     "cairo"
38     "ps"
39   ];
43 stdenv.mkDerivation {
44   name = "diagrams-builder";
46   nativeBuildInputs = [ makeWrapper ];
48   buildCommand = lib.concatStringsSep "\n" (map exeWrapper backends);
50   # Will be faster to build the wrapper locally then to fetch it from a binary cache.
51   preferLocalBuild = true;
52   meta = diagrams-builder.meta;