mkv/flake.nix
2026-04-02 23:35:15 +02:00

53 lines
1.5 KiB
Nix

{
description = "mkv";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{ self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
darwinBuildInputs = pkgs.lib.optionals pkgs.stdenv.hostPlatform.isDarwin [
pkgs.libiconv
];
mkMkv = pkgs': pkgs'.rustPlatform.buildRustPackage {
pname = "mkv";
version = "0.1.0";
cargoLock.lockFile = ./Cargo.lock;
src = pkgs.lib.cleanSource ./.;
buildInputs = pkgs'.lib.optionals pkgs'.stdenv.hostPlatform.isDarwin [
pkgs'.libiconv
];
doCheck = false;
};
mkv = mkMkv pkgs;
in
{
devShells.default = pkgs.mkShell {
packages = [
pkgs.rustc
pkgs.cargo
pkgs.rustfmt
pkgs.rust-analyzer
];
};
packages = {
default = mkv;
x86_64-linux = mkv;
} // pkgs.lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux {
x86_64-linux-musl = mkMkv pkgs.pkgsCross.musl64;
aarch64-linux = mkMkv pkgs.pkgsCross.aarch64-multiplatform;
};
checks.default = mkv.overrideAttrs {
doCheck = true;
checkPhase = ''
runHook preCheck
cargo test --lib
runHook postCheck
'';
};
}
);
}