summaryrefslogtreecommitdiff
path: root/parts/packages.nix
blob: 6c5d10bb7a3388dc411f0e5db3890be5fe20ea63 (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
{self, ...}: {
  perSystem = {
    craneLib,
    pkgs,
    system,
    ...
  }: {
    packages = {
      cargoArtifacts = craneLib.buildDepsOnly {src = craneLib.cleanCargoSource self;};

      teawiebot = pkgs.callPackage ./derivation.nix {inherit craneLib self;};

      teawiebot-smol =
        self.packages.${system}.teawiebot.overrideAttrs (_: {
            # statically link musl, optimize for size
            CARGO_BUILD_TARGET = "x86_64-unknown-linux-musl";

            CARGO_BUILD_RUSTFLAGS = "-C lto=fat -C embed-bitcode=yes \
									-C target-feature=+crt-static -C opt-level=z -C strip=symbols -C codegen-units=1";

            CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER = let
              inherit (pkgs.pkgsStatic.stdenv) cc;
            in "${cc}/bin/${cc.targetPrefix}cc";
          });

      default = self.packages.${system}.teawiebot;
    };
  };
}