git.iko.soy/typeable/cabal2nix
on v1.70 help sign in
typeable/cabal2nix/release.nix
37 lines 1.6 kB history raw
1/* Build instructions for the continuous integration system Hydra. */
3{ cabal2nixSrc ? { outPath = ./.; revCount = 0; gitTag = "dirty"; }
4, releaseBuild ? false
5, supportedPlatforms ? if releaseBuild then ["i686-linux" "x86_64-linux" "x86_64-darwin"] else ["x86_64-linux"]
6, supportedCompilers ? if releaseBuild then ["ghc783"] else ["ghc704" "ghc722" "ghc742" "ghc763" "ghc783" "ghcHEAD"]
7}:
9let
10 genAttrs = (import <nixpkgs> { }).lib.genAttrs;
11in
13 cabal2nix = genAttrs supportedCompilers (ghcVer: genAttrs supportedPlatforms (system:
14 let
15 pkgs = import <nixpkgs> { inherit system; };
16 haskellPackages = pkgs.lib.getAttrFromPath ["haskellPackages_${ghcVer}"] pkgs;
17 nativeCabal = pkgs.stdenv.lib.versionOlder "7.8" haskellPackages.ghc.version;
18 Cabal = if nativeCabal then null else haskellPackages.Cabal_1_18_1_3;
19 hackageDb = haskellPackages.hackageDb.override { Cabal = Cabal; };
20 in
21 haskellPackages.cabal.mkDerivation (self: {
22 pname = "cabal2nix";
23 src = cabal2nixSrc;
24 version = cabal2nixSrc.gitTag;
25 isLibrary = false;
26 isExecutable = true;
27 buildDepends = with haskellPackages; [ Cabal filepath hackageDb mtl regexPosix transformers ];
28 testDepends = with haskellPackages; [ doctest ];
29 doCheck = nativeCabal;
30 meta = {
31 homepage = "http://github.com/NixOS/cabal2nix";
32 description = "Convert Cabal files into Nix build instructions";
33 license = self.stdenv.lib.licenses.bsd3;
34 maintainers = [ self.stdenv.lib.maintainers.simons ];
35 };
36 })));