{
lib,
rustPlatform,
libiconv,
stdenv,
}:
let
cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml);
in
rustPlatform.buildRustPackage {
pname = cargoToml.package.name;
version = cargoToml.package.version;
src = lib.fileset.toSource {
root = ./.;
fileset = lib.fileset.intersection (lib.fileset.fromSource (lib.sources.cleanSource ./.)) (
lib.fileset.unions [
./Cargo.toml
./Cargo.lock
./src
]
);
};
cargoLock.lockFile = ./Cargo.lock;
buildInputs = lib.optionals stdenv.isDarwin [
libiconv
];
meta.mainProgram = cargoToml.package.name;
}