servicepoint-binding-csharp/flake.nix
Vinzenz Schroeter 8df2996504
Some checks failed
Rust / build (push) Failing after 4m58s
add uniffi binding as runtime dep
2025-09-28 23:59:52 +02:00

101 lines
2.3 KiB
Nix

{
description = "Flake for the servicepoint library.";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
binding = {
url = "git+https://git.berlin.ccc.de/servicepoint/servicepoint-binding-uniffi.git";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
self,
nixpkgs,
binding,
}:
let
lib = nixpkgs.lib;
supported-systems = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
"x86_64-darwin"
];
forAllSystems =
f:
lib.genAttrs supported-systems (
system:
f {
inherit system;
pkgs = nixpkgs.legacyPackages.${system};
bindingPkgs = binding.packages.${system};
selfPkgs = self.packages.${system};
}
);
in
{
packages = forAllSystems (
{
pkgs,
bindingPkgs,
selfPkgs,
...
}:
{
default = selfPkgs.servicepoint-binding-csharp;
servicepoint-binding-uniffi = bindingPkgs.servicepoint-binding-uniffi;
servicepoint-binding-csharp = pkgs.buildDotnetModule {
pname = "servicepoint-binding-csharp";
version = "0.0.0";
src = ./.;
projectFile = "csharp.sln";
nugetDeps = ./deps.json;
dotnet-sdk = pkgs.dotnetCorePackages.sdk_8_0;
dotnet-runtime = pkgs.dotnetCorePackages.runtime_8_0;
packNupkg = true;
nativeBuildInputs = with pkgs; [
pkg-config
gnumake
iconv
bindingPkgs.servicepoint-binding-uniffi
];
runtimeDeps = [
bindingPkgs.servicepoint-binding-uniffi
];
};
}
);
devShells = forAllSystems (
{
pkgs,
bindingPkgs,
selfPkgs,
...
}:
{
default = pkgs.mkShell {
inputsFrom = [
bindingPkgs.servicepoint-binding-uniffi
selfPkgs.servicepoint-binding-csharp
];
packages = with pkgs; [
bindingPkgs.servicepoint-binding-uniffi
nuget-to-json
];
};
}
);
formatter = forAllSystems ({ pkgs, ... }: pkgs.nixfmt-tree);
};
}