clan-sidebus/scope.nix

42 lines
1.2 KiB
Nix
Raw Normal View History

{ lib, newScope }:
lib.makeScope newScope (self: {
forgetScope = lib.flip lib.removeAttrs [
"override"
"overrideDerivation"
"overrideScope"
"newScope"
"packages"
"forgetScope"
];
buildEnvVars = self.forgetScope (
self.callPackage (
{ xdg-desktop-portal, virtiofsd }:
{
BIN_XDG_PERMISSION_STORE = "${xdg-desktop-portal}/libexec/xdg-permission-store";
BIN_XDG_DOCUMENT_PORTAL = "${xdg-desktop-portal}/libexec/xdg-document-portal";
BIN_VIRTIOFSD = "${virtiofsd}/bin/virtiofsd";
}
) { }
);
rustPackage =
{
crate,
cargoToml ? builtins.fromTOML (builtins.readFile ./${crate}/Cargo.toml),
rustPlatform,
buildEnvVars,
}:
rustPlatform.buildRustPackage {
inherit (cargoToml.package) name version;
src = ./.;
cargoLock.lockFile = ./Cargo.lock;
cargoLock.outputHashes = {
"busd-0.5.0" = "sha256-IZZ2MeEmUbzRrH6SUz0pnecMH4f8Mh54WdhI4q44YfI=";
};
buildAndTestSubdir = crate;
env = buildEnvVars;
};
sidebus-agent = self.callPackage self.rustPackage { crate = "sidebus-agent"; };
sidebus-broker = self.callPackage self.rustPackage { crate = "sidebus-broker"; };
})