|
17 | 17 | src = ./lbf-prelude;
|
18 | 18 | files = [ "Prelude.lbf" ];
|
19 | 19 | classes = [ "Prelude.Eq" "Prelude.Json" ];
|
20 |
| - configs = [ ../lambda-buffers-codegen/data/haskell-prelude-base.json ]; |
| 20 | + configs = [ "${config.packages.codegen-configs}/haskell-prelude-base.json" ]; |
21 | 21 | };
|
22 | 22 |
|
23 | 23 | lbf-prelude-purescript = config.overlayAttrs.lbf-nix.lbfPurescript {
|
24 | 24 | name = "lbf-prelude";
|
25 | 25 | src = ./lbf-prelude;
|
26 | 26 | files = [ "Prelude.lbf" ];
|
27 | 27 | classes = [ "Prelude.Eq" "Prelude.Json" ];
|
28 |
| - configs = [ ../lambda-buffers-codegen/data/purescript-prelude-base.json ]; |
| 28 | + configs = [ "${config.packages.codegen-configs}/purescript-prelude-base.json" ]; |
29 | 29 | };
|
30 | 30 |
|
31 | 31 | lbf-prelude-plutarch = config.overlayAttrs.lbf-nix.lbfPlutarch' {
|
|
56 | 56 | # being automatically included as a dependency.
|
57 | 57 | "lbr-plutus"
|
58 | 58 | ];
|
59 |
| - configs = [ ../lambda-buffers-codegen/data/haskell-prelude-base.json ../lambda-buffers-codegen/data/haskell-plutus-plutustx.json ]; |
| 59 | + configs = [ |
| 60 | + "${config.packages.codegen-configs}/haskell-prelude-base.json" |
| 61 | + "${config.packages.codegen-configs}/haskell-plutus-plutustx.json" |
| 62 | + ]; |
60 | 63 | };
|
61 | 64 |
|
62 | 65 | lbf-plutus-purescript = config.overlayAttrs.lbf-nix.lbfPurescript {
|
|
66 | 69 | files = [ "Plutus/V1.lbf" "Plutus/V2.lbf" ];
|
67 | 70 | classes = [ "Prelude.Eq" "Prelude.Json" "Plutus.V1.PlutusData" ];
|
68 | 71 | dependencies = [ "lbf-prelude" ];
|
69 |
| - configs = [ ../lambda-buffers-codegen/data/purescript-prelude-base.json ../lambda-buffers-codegen/data/purescript-plutus-ctl.json ]; |
| 72 | + configs = [ |
| 73 | + "${config.packages.codegen-configs}/purescript-prelude-base.json" |
| 74 | + "${config.packages.codegen-configs}/purescript-plutus-ctl.json" |
| 75 | + ]; |
70 | 76 | };
|
71 | 77 |
|
72 | 78 | lbf-plutus-plutarch = config.overlayAttrs.lbf-nix.lbfPlutarch' {
|
|
76 | 82 | files = [ "Plutus/V1.lbf" "Plutus/V2.lbf" ];
|
77 | 83 | classes = [ "Prelude.Eq" "Plutus.V1.PlutusData" ];
|
78 | 84 | dependencies = [ "lbf-prelude-plutarch" ];
|
79 |
| - configs = [ "${config.packages.codegen-configs}/plutarch-prelude.json" "${config.packages.codegen-configs}/plutarch-plutus.json" ]; |
| 85 | + configs = [ |
| 86 | + "${config.packages.codegen-configs}/plutarch-prelude.json" |
| 87 | + "${config.packages.codegen-configs}/plutarch-plutus.json" |
| 88 | + ]; |
80 | 89 | };
|
81 | 90 | };
|
82 | 91 |
|
|
97 | 106 | project = { lib, ... }: {
|
98 | 107 | src = config.packages.lbf-prelude-haskell;
|
99 | 108 |
|
100 |
| - name = "lbf-prelude-haskell"; |
| 109 | + name = "dev-prelude-haskell"; |
101 | 110 |
|
102 | 111 | inherit (config.settings.haskell) index-state compiler-nix-name;
|
103 | 112 |
|
|
111 | 120 | packages = {
|
112 | 121 | allComponent.doHoogle = true;
|
113 | 122 | allComponent.doHaddock = true;
|
114 |
| - |
115 |
| - # Enable strict compilation |
116 |
| - lbf-prelude.configureFlags = [ "-f-dev" ]; |
117 | 123 | };
|
118 | 124 | })
|
119 | 125 | ];
|
|
167 | 173 | project = { lib, ... }: {
|
168 | 174 | src = config.packages.lbf-plutus-haskell;
|
169 | 175 |
|
170 |
| - name = "lbf-plutus-haskell"; |
| 176 | + name = "dev-plutustx"; |
171 | 177 |
|
172 | 178 | inherit (config.settings.haskell) index-state compiler-nix-name;
|
173 | 179 |
|
|
183 | 189 | packages = {
|
184 | 190 | allComponent.doHoogle = true;
|
185 | 191 | allComponent.doHaddock = true;
|
186 |
| - |
187 |
| - # Enable strict compilation |
188 |
| - lbf-plutus.configureFlags = [ "-f-dev" ]; |
189 | 192 | };
|
190 | 193 | })
|
191 | 194 | ];
|
|
222 | 225 | ]).flake { };
|
223 | 226 | in
|
224 | 227 | hsNixFlake.devShell;
|
| 228 | + |
| 229 | + dev-plutarch = |
| 230 | + let |
| 231 | + project = { lib, ... }: { |
| 232 | + src = config.packages.lbf-plutus-plutarch; |
| 233 | + |
| 234 | + name = "dev-plutarch"; |
| 235 | + |
| 236 | + inherit (config.settings.haskell) index-state compiler-nix-name; |
| 237 | + |
| 238 | + extraHackage = [ |
| 239 | + # Load Plutarch support (Prelude, Plutus) |
| 240 | + "${config.packages.lbf-prelude-plutarch}" |
| 241 | + "${config.packages.lbf-plutus-plutarch}" |
| 242 | + "${config.packages.lbr-plutarch-src}" |
| 243 | + # Load Haskell support (Prelude, Plutus) |
| 244 | + "${config.packages.lbf-prelude-haskell}" |
| 245 | + "${config.packages.lbf-plutus-haskell}" |
| 246 | + "${config.packages.lbr-prelude-haskell-src}" |
| 247 | + "${config.packages.lbr-plutus-haskell-src}" |
| 248 | + # Plutarch itself |
| 249 | + "${inputs.plutarch}" |
| 250 | + "${inputs.plutarch}/plutarch-extra" |
| 251 | + ]; |
| 252 | + |
| 253 | + modules = [ |
| 254 | + (_: { |
| 255 | + packages = { |
| 256 | + allComponent.doHoogle = true; |
| 257 | + allComponent.doHaddock = true; |
| 258 | + }; |
| 259 | + }) |
| 260 | + ]; |
| 261 | + |
| 262 | + shell = { |
| 263 | + |
| 264 | + withHoogle = true; |
| 265 | + |
| 266 | + exactDeps = true; |
| 267 | + |
| 268 | + nativeBuildInputs = config.settings.shell.tools ++ [ |
| 269 | + config.packages.lbf-plutus-to-plutarch |
| 270 | + ]; |
| 271 | + |
| 272 | + additional = ps: [ ps.lbf-prelude-plutarch ps.lbf-plutus-plutarch ps.lbr-plutarch ps.plutus-tx ps.plutus-ledger-api ]; |
| 273 | + |
| 274 | + tools = { |
| 275 | + cabal = { }; |
| 276 | + haskell-language-server = { }; |
| 277 | + }; |
| 278 | + |
| 279 | + shellHook = lib.mkForce config.settings.shell.hook; |
| 280 | + }; |
| 281 | + }; |
| 282 | + hsNixFlake = (pkgs.haskell-nix.cabalProject' [ |
| 283 | + inputs.mlabs-tooling.lib.mkHackageMod |
| 284 | + inputs.mlabs-tooling.lib.moduleMod |
| 285 | + project |
| 286 | + ]).flake { }; |
| 287 | + in |
| 288 | + hsNixFlake.devShell; |
| 289 | + |
225 | 290 | };
|
226 | 291 | };
|
227 | 292 | }
|
|
0 commit comments