From 6538dcb08e7a303bc1378d29c60812489089fd0f Mon Sep 17 00:00:00 2001 From: Dominic Steinitz Date: Tue, 10 Apr 2018 13:22:43 +0100 Subject: Another change of tack --- shell.nix | 86 ++++++++++++++++++--------------------------------------------- 1 file changed, 24 insertions(+), 62 deletions(-) (limited to 'shell.nix') diff --git a/shell.nix b/shell.nix index d22f886..42bbe08 100644 --- a/shell.nix +++ b/shell.nix @@ -1,64 +1,26 @@ -{ nixpkgs ? import {} -, compiler ? "ghc822", doBenchmark ? false }: - -let - - inherit (nixpkgs) pkgs; - -f = { mkDerivation, base, containers, diagrams-lib, diagrams-rasterific, gcc - , hmatrix, hmatrix-gsl, HUnit, inline-c, plots, stdenv - , template-haskell, temporary, vector }: - -mkDerivation { - pname = "hmatrix-sundials"; - version = "0.1.0.0"; - src = ./.; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - base - containers - hmatrix - inline-c - template-haskell - vector - ]; - executableHaskellDepends = [ - base - diagrams-lib - diagrams-rasterific - gcc - hmatrix - hmatrix-gsl - HUnit - inline-c - template-haskell - temporary - vector - ] ++ (if pkgs.stdenv.isDarwin then [pkgs.darwin.apple_sdk.frameworks.Cocoa] else []); - executableSystemDepends = [ - pkgs.blas - pkgs.gfortran.cc - pkgs.liblapack - pkgs.gsl - pkgs.glpk - pkgs.pkgconfig - pkgs.stack - pkgs.sundials - pkgs.zlib - ] ++ (if pkgs.stdenv.isDarwin then [pkgs.darwin.apple_sdk.frameworks.Accelerate] else []); - license = stdenv.lib.licenses.bsd3; -}; - - haskellPackages = if compiler == "default" - then pkgs.haskellPackages - else pkgs.haskell.packages.${compiler}; - - variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id; - - drv = variant (haskellPackages.callPackage f {}); +{ nixpkgs ? import {} }: +let p = nixpkgs; in + let + myStack = p.writeShellScriptBin "stack" '' + exec ${p.stack}/bin/stack --no-nix --no-docker --system-ghc $STACK_IN_NIX_EXTRA_ARGS "$@" + ''; in - - if pkgs.lib.inNixShell then drv.env else drv - +p.haskell.lib.buildStackProject { + name = "hmatrix"; + + buildInputs = [ + p.zlib + p.sundials + p.blas + p.gfortran.cc + p.liblapack + p.gsl + p.glpk + p.pkgconfig + p.stack + p.sundials + myStack + ] ++ (if p.stdenv.isDarwin then [p.darwin.apple_sdk.frameworks.Accelerate] else []) + ++ (if p.stdenv.isDarwin then [p.darwin.apple_sdk.frameworks.Cocoa] else []); +} -- cgit v1.2.3