on master help sign in
streamly/targets/default.nix
163 lines 6.7 kB history raw
1let
2 nixpkgsPath_21_11 =
3 "https://github.com/NixOS/nixpkgs/archive/refs/tags/21.11.tar.gz";
4 nixpkgsDefault = import (builtins.fetchTarball nixpkgsPath_21_11) { };
5in
6{
7 nixpkgs ? nixpkgsDefault
8, compiler ? "default"
9}:
10let haskellPackages =
11 if compiler == "default"
12 then nixpkgs.haskellPackages
13 else nixpkgs.haskell.packages.${compiler};
15 mkPackage = super: pkg: path: opts: inShell:
16 let orig = super.callCabal2nixWithOptions pkg path opts {};
17 in if inShell
18 # Avoid copying the source directory to nix store by using
19 # src = null.
20 then orig.overrideAttrs (oldAttrs: { src = null; })
21 else orig;
23 mkPkgGit = super: gitSrc: rev: name:
24 let
25 src = builtins.fetchGit {
26 url = gitSrc;
27 rev = rev;
28 };
29 in super.callCabal2nix name src { };
31 mkPkgGitRef = super: gitSrc: rev: ref: name:
32 let
33 src = builtins.fetchGit {
34 url = gitSrc;
35 rev = rev;
36 ref = ref;
37 };
38 in super.callCabal2nix name src { };
40 mkHaskellPackages = inShell:
41 haskellPackages.override {
42 overrides = self: super:
43 with nixpkgs.haskell.lib;
44 {
45 report = mkPackage super "streamly-targets" ./. "" inShell;
47 bench-report =
48 nixpkgs.haskell.lib.overrideCabal
49 (let src = fetchGit {
50 url = "git@github.com:composewell/bench-report.git";
51 rev = "57d0ad221c74cdb2ce81646ab18300e8bb8e716b";
52 }; in super.callCabal2nix "bench-report" src {})
53 (old:
54 { enableLibraryProfiling = false;
55 doHaddock = false;
56 });
58 bench-show = super.callHackageDirect {
59 pkg = "bench-show";
60 ver = "0.3.2";
61 sha256 = "16b8vyzdp9b5bh34kqmbfwjsyv8wgnxxwl8kjcpgxjsh52xzyaa0";
62 } { };
64# streamly-coreutils = let
65# src = "git@github.com:composewell/streamly-coreutils.git";
66# rev = "a12756efe24bbf303f2f6d66a95426c7657d297b";
67# in mkPkgGit super src rev "streamly-coreutils";
69 streamly-coreutils =
70 nixpkgs.haskell.lib.overrideCabal
71 (let src = fetchGit {
72 url = "git@github.com:composewell/streamly-coreutils.git";
73 rev = "8fa4a3ebedb3f970f64b7d78d8ab340b0f771abe";
74 }; in super.callCabal2nix "streamly-coreutils" src {})
75 (old:
76 { librarySystemDepends =
77 if builtins.currentSystem == "x86_64-darwin"
78 then [nixpkgs.darwin.apple_sdk.frameworks.Cocoa]
79 else [];
80 #enableLibraryProfiling = false;
81 doHaddock = false;
82 doCheck = false;
83 });
85 streamly-shell = let
86 src = "https://github.com/composewell/streamly-shell.git";
87 rev = "7d77ddc0c06aec21fbbfd1b920ec4f58da654a1b";
88 in mkPkgGit super src rev "streamly-shell";
90 streamly-process = let
91 src = "https://github.com/composewell/streamly-process.git";
92 rev = "a56ef61c1208c2d564a526eba315d903c0b4af2c";
93 in nixpkgs.haskell.lib.dontCheck
94 (mkPkgGit super src rev "streamly-process");
96 #streamly-process = nixpkgs.haskell.lib.dontCheck
97 # (super.callHackageDirect {
98 # pkg = "streamly-process";
99 # ver = "0.1.0";
100 # sha256 = "01nxisqfmn29fbirdsx71sfjp2rdqwrf469qyjcql2d11i1bxn94";
101 # } { });
103 # streamly = super.callHackageDirect {
104 # pkg = "streamly";
105 # ver = "0.8.0";
106 # sha256 = "0vy2lkljizlhpbpbybmg9jcmj2g4s1aaqd2dzy5c0y0n4rgwxask";
107 # } { };
108 streamly =
109 nixpkgs.haskell.lib.overrideCabal
110 #(super.callHackageDirect
111 # { pkg = "streamly";
112 # ver = "0.8.2";
113 # sha256 = "sha256-CjFq9SCdbgLZa7NqOE4OtC8OaFg4vK8VmIDjGU5rGko=";
114 # } {})
115 (let src = fetchGit {
116 url = "git@github.com:composewell/streamly.git";
117 rev = "a849812d9960d5b7868e770156ab774ee8f70157";
118 }; in super.callCabal2nix "streamly" src {})
119 (old:
120 { librarySystemDepends =
121 if builtins.currentSystem == "x86_64-darwin"
122 then [nixpkgs.darwin.apple_sdk.frameworks.Cocoa]
123 else [];
124 #enableLibraryProfiling = false;
125 doHaddock = false;
126 });
128 streamly-core =
129 nixpkgs.haskell.lib.overrideCabal
130 (let src = fetchGit {
131 url = "git@github.com:composewell/streamly.git";
132 rev = "a849812d9960d5b7868e770156ab774ee8f70157";
133 }; in super.callCabal2nix "streamly-core" "${src}/core" {})
134 (old:
135 { librarySystemDepends =
136 if builtins.currentSystem == "x86_64-darwin"
137 then [nixpkgs.darwin.apple_sdk.frameworks.Cocoa]
138 else [];
139 #enableLibraryProfiling = false;
140 doHaddock = false;
141 });
143 };
144 };
146 drv = mkHaskellPackages true;
148 shell = drv.shellFor {
149 packages = p:
150 [ p.report
151 ];
152 # Use a better prompt
153 shellHook = ''
154 export CABAL_DIR="$(pwd)/.cabal.nix"
155 if test -n "$PS_SHELL"
156 then
157 export PS1="$PS_SHELL\[$bldred\](nix)\[$txtrst\] "
158 fi
159 '';
160 };
161in if nixpkgs.lib.inNixShell
162 then shell
163 else (mkHaskellPackages false).streamly-targets