diff options
author | Erik Oosting | 2023-12-18 14:29:00 +0100 |
---|---|---|
committer | Erik Oosting | 2023-12-18 14:29:00 +0100 |
commit | daf044b576feb8ee61bb6be18f28985f5e87f4f4 (patch) | |
tree | b9ec8f9443bcaa339384cecd86d273f530a56f1c /haskell/shell.nix | |
parent | a1be864841356b237cbbee42c163384d69995555 (diff) |
add haskell version
Diffstat (limited to 'haskell/shell.nix')
-rw-r--r-- | haskell/shell.nix | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/haskell/shell.nix b/haskell/shell.nix new file mode 100644 index 0000000..78b2637 --- /dev/null +++ b/haskell/shell.nix @@ -0,0 +1,33 @@ +{ nixpkgs ? import <nixpkgs> {}, compiler ? "default", doBenchmark ? false }: + +let + + inherit (nixpkgs) pkgs; + + f = { mkDerivation, base, bound, lib, llvm-codegen + , recursion-schemes + }: + mkDerivation { + pname = "haskell"; + version = "0.1.0.0"; + src = ./.; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = [ + base bound llvm-codegen recursion-schemes + ]; + license = "unknown"; + mainProgram = "haskell"; + }; + + haskellPackages = if compiler == "default" + then pkgs.callPackage ./pkgs {} + else pkgs.haskell.packages.${compiler}; + + variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id; + + drv = variant (haskellPackages.callPackage f {}); + +in + +if pkgs.lib.inNixShell then drv.env else drv |