package.nix
{
stdenv,
lib,
darwin,
rustPlatform,
cargo,
libiconv,
pkg-config,
rustc,
openssl,
libsodium,
...
}:
let
cargoMeta = builtins.fromTOML (builtins.readFile ../pijul/Cargo.toml);
inherit (rustPlatform) cargoBuildHook cargoInstallHook cargoSetupHook;
in
stdenv.mkDerivation {
pname = cargoMeta.package.name;
version = cargoMeta.package.version;
src =
let
fs = lib.fileset;
in
fs.toSource {
root = ../.;
fileset = fs.unions [
../Cargo.toml
../Cargo.lock
../pijul-macros
../pijul
../libpijul
../pijul-interaction
../pijul-config
../pijul-repository
../pijul-identity
../pijul-remote
];
};
buildAndTestSubdir = "pijul";
doCheck = true;
cargoBuildType = "release";
cargoDeps = rustPlatform.importCargoLock { lockFile = ../Cargo.lock; };
nativeBuildInputs = [
cargo
libiconv
pkg-config
rustc
];
buildInputs = [
libsodium
openssl.dev
cargoBuildHook
cargoInstallHook
cargoSetupHook
] ++ lib.optionals (stdenv.isDarwin) [ darwin.apple_sdk.frameworks.SystemConfiguration ];
}