{
lib,
clangStdenv,
cargo,
darwin,
libiconv,
libsodium,
openssl,
pkg-config,
rustPlatform,
rustc,
}: let
cargoMeta = builtins.fromTOML (builtins.readFile ./pijul/Cargo.toml);
in
clangStdenv.mkDerivation (self: {
pname = cargoMeta.package.name;
version = cargoMeta.package.version;
src = ./.;
buildAndTestSubdir = "pijul";
doCheck = true;
cargoBuildType = "release";
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
};
nativeBuildInputs = [
cargo
libiconv
pkg-config
rustc
];
buildInputs =
[
libsodium
openssl
rustPlatform.cargoBuildHook
rustPlatform.cargoInstallHook
rustPlatform.cargoSetupHook
]
++ lib.optionals clangStdenv.isDarwin [
darwin.apple_sdk.frameworks.SystemConfiguration
];
postInstall = ''
install -d $out/share/zsh/site-functions
install \
$src/share/zsh/site-functions/VCS_INFO_{detect,get_data}_pijul \
$out/share/zsh/site-functions/
'';
})