blob: dcdf0f3ad2bbd5b608bb2d8ae8be365c25fa9b49 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
{
perSystem = {
lib,
pkgs,
inputs',
self',
...
}: let
targets = with pkgs.pkgsCross; {
x86_64 = musl64.pkgsStatic;
aarch64 = aarch64-multiplatform.pkgsStatic;
};
toolchain = let
fenix = inputs'.fenix.packages;
in
with fenix;
combine (
[minimal.cargo minimal.rustc]
++ map (
pkgs:
fenix.targets.${pkgs.stdenv.hostPlatform.config}.latest.rust-std
) (lib.attrValues targets)
);
rustPlatforms =
lib.mapAttrs (
lib.const (pkgs:
pkgs.makeRustPlatform (
lib.genAttrs ["cargo" "rustc"] (lib.const toolchain)
))
)
targets;
buildTeawieWith = rustPlatform:
self'.packages.teawiebot.override {
inherit rustPlatform;
lto = true;
optimizeSize = true;
};
in {
packages = lib.optionalAttrs pkgs.stdenv.isLinux (
lib.mapAttrs' (
target: rustPlatform:
lib.nameValuePair "teawiebot-static-${target}" (buildTeawieWith rustPlatform)
)
rustPlatforms
);
};
}
|