diff options
author | Vincent Ambo <tazjin@google.com> | 2019-07-04T10·18+0100 |
---|---|---|
committer | Vincent Ambo <tazjin@google.com> | 2019-07-04T10·18+0100 |
commit | f723b8b878a3c4a4687b9e337a875500bebb39b1 (patch) | |
tree | e85204cf042c355e90cff61c111e7d8cd15df311 /third_party/bazel/rules_haskell/tests/ghc.nix | |
parent | 2eb1dc26e42ffbdc168f05ef744bd4b4f3e4c36f (diff) |
feat(third_party/bazel): Check in rules_haskell from Tweag r/17
Diffstat (limited to 'third_party/bazel/rules_haskell/tests/ghc.nix')
-rw-r--r-- | third_party/bazel/rules_haskell/tests/ghc.nix | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/third_party/bazel/rules_haskell/tests/ghc.nix b/third_party/bazel/rules_haskell/tests/ghc.nix new file mode 100644 index 000000000000..cde1699918f2 --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/ghc.nix @@ -0,0 +1,41 @@ +{ pkgs ? import ../nixpkgs {} +# Whether we want to wrap the packages using <bazel_haskell_wrapper>. +# When this is called from inside bazel, we need to wrap the haskell package +# set using <bazel_haskell_wrapper>. Otherwise we don't need (and don't want) +# to. +, wrapPackages ? (builtins.tryEval <bazel_haskell_wrapper>).success +}: + +with pkgs; + +let haskellPackages = pkgs.haskell.packages.ghc864.override { + overrides = with pkgs.haskell.lib; self: super: rec { + libc = import ./haddock/libC.nix self pkgs; + }; + }; + genBazelBuild = + if wrapPackages + then callPackage <bazel_haskell_wrapper> {} + else (x: x); + +in + { + ghc = haskellPackages.ghcWithPackages (p: with p; [ + + # haskell_proto_library inputs + bytestring + containers + data-default-class + lens-family + lens-labels + proto-lens + text + + # test inputs + libc + + # for test runner + hspec + ]); + haskellPackages = genBazelBuild haskellPackages; +} |