diagrams-builder: wrap all available backend executables
This way, we no longer need to track what backends we expect to be enabled which the diagrams-builder wrapper derivation doesn't control.
This commit is contained in:
@@ -25,18 +25,26 @@ let
|
||||
wrappedGhc = ghcWithPackages (self: [ diagrams-builder ] ++ extraPackages self);
|
||||
ghc = lib.getExe' wrappedGhc "ghc";
|
||||
|
||||
exeWrapper = backend: ''
|
||||
makeWrapper \
|
||||
"${diagrams-builder}/bin/diagrams-builder-${backend}" "$out/bin/diagrams-builder-${backend}" \
|
||||
--set NIX_GHC ${ghc} \
|
||||
--set NIX_GHC_LIBDIR "$(${ghc} --print-libdir)"
|
||||
'';
|
||||
exeWrapper =
|
||||
backend:
|
||||
let
|
||||
exe = "${diagrams-builder}/bin/diagrams-builder-${backend}";
|
||||
in
|
||||
''
|
||||
test ! -x "${exe}" || \
|
||||
makeWrapper "${exe}" \
|
||||
"$out/bin/diagrams-builder-${backend}" \
|
||||
--set NIX_GHC ${ghc} \
|
||||
--set NIX_GHC_LIBDIR "$(${ghc} --print-libdir)"
|
||||
'';
|
||||
|
||||
backends = [
|
||||
# Needs to match executable, suffix, not flag name
|
||||
allBackends = [
|
||||
"svg"
|
||||
"ps"
|
||||
# See ../../../development/haskell-modules/configuration-common.nix:/diagrams-builder.=
|
||||
# "cairo"
|
||||
"cairo"
|
||||
"rasterific"
|
||||
"pgf"
|
||||
];
|
||||
|
||||
in
|
||||
@@ -46,7 +54,7 @@ stdenv.mkDerivation {
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
buildCommand = lib.concatStringsSep "\n" (map exeWrapper backends);
|
||||
buildCommand = lib.concatStringsSep "\n" (map exeWrapper allBackends);
|
||||
|
||||
# Will be faster to build the wrapper locally then to fetch it from a binary cache.
|
||||
preferLocalBuild = true;
|
||||
|
||||
Reference in New Issue
Block a user