summary refs log tree commit diff
path: root/pkgs/development/libraries/haskell/diagrams/builder
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/haskell/diagrams/builder')
-rw-r--r--pkgs/development/libraries/haskell/diagrams/builder/default.nix26
-rw-r--r--pkgs/development/libraries/haskell/diagrams/builder/wrapper.nix53
2 files changed, 79 insertions, 0 deletions
diff --git a/pkgs/development/libraries/haskell/diagrams/builder/default.nix b/pkgs/development/libraries/haskell/diagrams/builder/default.nix
new file mode 100644
index 00000000000..40e1cf45796
--- /dev/null
+++ b/pkgs/development/libraries/haskell/diagrams/builder/default.nix
@@ -0,0 +1,26 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, blazeSvg, cmdargs, diagramsCairo, diagramsLib
+, diagramsPostscript, diagramsSvg, exceptions, filepath, hashable
+, haskellSrcExts, hint, lens, mtl, split, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "diagrams-builder";
+  version = "0.6.0.2";
+  sha256 = "18avlhwywhrxlf1cyp9fdiy0i3gy12k4i28cymllmmyx78fv59q5";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    blazeSvg cmdargs diagramsCairo diagramsLib diagramsPostscript
+    diagramsSvg exceptions filepath hashable haskellSrcExts hint lens
+    mtl split transformers
+  ];
+  configureFlags = "-fcairo -fsvg -fps -frasterific";
+  meta = {
+    homepage = "http://projects.haskell.org/diagrams";
+    description = "hint-based build service for the diagrams graphics EDSL";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/diagrams/builder/wrapper.nix b/pkgs/development/libraries/haskell/diagrams/builder/wrapper.nix
new file mode 100644
index 00000000000..8d175398414
--- /dev/null
+++ b/pkgs/development/libraries/haskell/diagrams/builder/wrapper.nix
@@ -0,0 +1,53 @@
+/*
+  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`:
+  
+  ~~~
+  diagramBuilderWrapper.override {
+    extraPackages = self : [myHaskellPackage];
+  }
+  ­~~~
+
+  WARNING:
+  Note that this solution works well but however, as this is a 
+  non-cabal derivation, user should be carefull to never put this
+  package inside the listing passed as argument to `ghcWithPackages`
+  as it will silently disregard the package. This silent disregard
+  should be regarded as an issue for `ghcWithPackages`. It should
+  rather raise an error instead when a non-cabal dirivation is
+  directly passed to it. The alternative would have been to
+  use a fake cabal file in order to make this a cabal derivation
+  such as what `yiCustom` package did.
+*/
+
+{ stdenv, diagramsBuilder, ghcWithPackages, makeWrapper, 
+  extraPackages ? (self: []) }:
+let
+  # Used same technique as for the yiCustom package.
+  w = ghcWithPackages 
+    (self: [ diagramsBuilder ] ++ extraPackages self);
+  wrappedGhc = w.override { ignoreCollisions = true; };
+in
+stdenv.mkDerivation {
+  name = diagramsBuilder.name + "-wrapper";
+  buildInputs = [ makeWrapper ];
+  buildCommand = ''
+    makeWrapper \
+    "${diagramsBuilder}/bin/diagrams-builder-svg" "$out/bin/diagrams-builder-svg" \
+      --set NIX_GHC ${wrappedGhc}/bin/ghc \
+      --set NIX_GHC_LIBDIR ${wrappedGhc}/lib/ghc-${diagramsBuilder.ghc.version}
+
+    makeWrapper \
+    "${diagramsBuilder}/bin/diagrams-builder-cairo" "$out/bin/diagrams-builder-cairo" \
+      --set NIX_GHC ${wrappedGhc}/bin/ghc \
+      --set NIX_GHC_LIBDIR ${wrappedGhc}/lib/ghc-${diagramsBuilder.ghc.version}
+
+    makeWrapper \
+    "${diagramsBuilder}/bin/diagrams-builder-ps" "$out/bin/diagrams-builder-ps" \
+    --set NIX_GHC ${wrappedGhc}/bin/ghc \
+    --set NIX_GHC_LIBDIR ${wrappedGhc}/lib/ghc-${diagramsBuilder.ghc.version}
+  '';
+  preferLocalBuild = true;
+  meta = diagramsBuilder.meta;
+}
\ No newline at end of file