diff options
Diffstat (limited to 'parts/packages.nix')
| -rw-r--r-- | parts/packages.nix | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/parts/packages.nix b/parts/packages.nix new file mode 100644 index 0000000..1b8acd8 --- /dev/null +++ b/parts/packages.nix @@ -0,0 +1,44 @@ +{self, ...}: { + perSystem = { + craneLib, + pkgs, + src, + system, + ... + }: let + inherit (pkgs.lib) licenses maintainers platforms; + inherit (craneLib) buildPackage; + in { + packages = { + cargoArtifacts = craneLib.buildDepsOnly {inherit src;}; + + teawiebot = buildPackage { + inherit src; + inherit (self.packages.${system}) cargoArtifacts; + + meta = { + description = "funni bot"; + homepage = "https://github.com/getchoo/teawiebot"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [getchoo]; + }; + }; + + 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; + }; + }; +} |
