Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 53 lines 1.2 kB view raw
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`: 5 6 ~~~ 7 diagrams-builder.override { 8 extraPackages = self : [myHaskellPackage]; 9 } 10 ­~~~ 11*/ 12 13{ 14 lib, 15 stdenv, 16 ghcWithPackages, 17 makeWrapper, 18 diagrams-builder, 19 extraPackages ? (self: [ ]), 20}: 21 22let 23 24 # Used same technique as for the yiCustom package. 25 wrappedGhc = ghcWithPackages (self: [ diagrams-builder ] ++ extraPackages self); 26 ghc = lib.getExe' wrappedGhc "ghc"; 27 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 ''; 34 35 backends = [ 36 "svg" 37 "cairo" 38 "ps" 39 ]; 40 41in 42 43stdenv.mkDerivation { 44 name = "diagrams-builder"; 45 46 nativeBuildInputs = [ makeWrapper ]; 47 48 buildCommand = lib.concatStringsSep "\n" (map exeWrapper backends); 49 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; 53}