depot/third_party/nixpkgs/pkgs/tools/graphics/diagrams-builder/default.nix
Default email 8ac5e011d6 Project import generated by Copybara.
GitOrigin-RevId: 2c3273caa153ee8eb5786bc8141b85b859e7efd7
2020-04-24 19:36:52 -04:00

44 lines
No EOL
1.2 KiB
Nix
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
If user need access to more haskell package for building his
diagrams, he simply has to pass these package through the
extra packages function as follow in `config.nix`:
~~~
diagrams-builder.override {
extraPackages = self : [myHaskellPackage];
}
­~~~
*/
{ stdenv, ghcWithPackages, makeWrapper, diagrams-builder, extraPackages ? (self: []) }:
let
# Used same technique as for the yiCustom package.
wrappedGhc = ghcWithPackages
(self: [ diagrams-builder ] ++ extraPackages self);
ghcVersion = wrappedGhc.version;
exeWrapper = backend : ''
makeWrapper \
"${diagrams-builder}/bin/diagrams-builder-${backend}" "$out/bin/diagrams-builder-${backend}" \
--set NIX_GHC ${wrappedGhc}/bin/ghc \
--set NIX_GHC_LIBDIR ${wrappedGhc}/lib/ghc-${ghcVersion}
'';
backends = ["svg" "cairo" "ps"];
in
stdenv.mkDerivation {
name = "diagrams-builder";
buildInputs = [ makeWrapper ];
buildCommand = with stdenv.lib;
concatStrings (intersperse "\n" (map exeWrapper backends));
# Will be faster to build the wrapper locally then to fetch it from a binary cache.
preferLocalBuild = true;
meta = diagrams-builder.meta;
}