Skip to content

Commit 98a66d7

Browse files
committed
Modernize release.nix using way newer reflex-platform,
1 parent a64de1d commit 98a66d7

File tree

2 files changed

+38
-9
lines changed

2 files changed

+38
-9
lines changed

dep/reflex-platform/github.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
"owner": "reflex-frp",
33
"repo": "reflex-platform",
44
"branch": "develop",
5-
"rev": "384cd850f3adf1d404bced2424b5f6efb0f415f2",
6-
"sha256": "1ws77prqx8khmp8j6br1ij4k2v4dlgv170r9fmg0p1jivfbn8y9d"
5+
"rev": "338fc907e37d70e6469c529456f33221fb05ca1f",
6+
"sha256": "08gfhpp0pkvvi1wnlpcn6wmpzdjvy5z7dy1h66gp2w8b5cx8hx5h"
77
}

release.nix

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,38 @@
1-
{ rp ? import ./dep/reflex-platform {}
1+
{ reflex-platform-fun ? import ./dep/reflex-platform
22
}:
3+
34
let
4-
inherit (rp.nixpkgs) lib;
5-
compilers = ["ghc8_4" "ghc8_0" "ghcjs8_4" "ghcjs8_0"];
6-
in lib.attrValues (lib.genAttrs compilers (ghc: {
7-
reflex-useTemplateHaskell = rp.${ghc}.callPackage ./. { useTemplateHaskell = true; splitThese = false; };
8-
reflex = rp.${ghc}.callPackage ./. { useTemplateHaskell = false; splitThese = false; };
9-
}))
5+
native-reflex-platform = reflex-platform-fun {};
6+
inherit (native-reflex-platform.nixpkgs) lib;
7+
systems = ["x86_64-linux" "x86_64-darwin"];
8+
9+
perPlatform = lib.genAttrs systems (system: let
10+
reflex-platform = reflex-platform-fun { inherit system; };
11+
compilers = [
12+
"ghc"
13+
"ghcjs"
14+
] ++ lib.optionals (reflex-platform.androidSupport) [
15+
"ghcAndroidAarch64"
16+
"ghcAndroidAarch32"
17+
] ++ lib.optionals (reflex-platform.iosSupport) [
18+
"ghcIosAarch64"
19+
];
20+
hsPkgs = lib.genAttrs compilers (ghc: let
21+
ghc' = reflex-platform.${ghc}.override {
22+
overrides = self: super: {
23+
reflex-useTemplateHaskell = self.callPackage ./. { useTemplateHaskell = true; splitThese = false; };
24+
reflex = self.callPackage ./. { useTemplateHaskell = false; splitThese = false; };
25+
};
26+
};
27+
in {
28+
inherit (ghc') reflex reflex-useTemplateHaskell;
29+
});
30+
in hsPkgs // {
31+
cache = reflex-platform.pinBuildInputs "reflex-${system}"
32+
(lib.concatLists (map builtins.attrValues (builtins.attrValues hsPkgs)));
33+
});
34+
35+
metaCache = native-reflex-platform.pinBuildInputs "reflex-everywhere"
36+
(map (a: a.cache) (builtins.attrValues perPlatform));
37+
38+
in perPlatform // { inherit metaCache; }

0 commit comments

Comments
 (0)