package in flake, but wthout uniffi.so

This commit is contained in:
Vinzenz Schroeter 2025-09-28 23:43:25 +02:00
parent f11290ec26
commit 915d0b3592
5 changed files with 711 additions and 30 deletions

View file

@ -3,12 +3,18 @@
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;
@ -22,43 +28,70 @@
f:
lib.genAttrs supported-systems (
system:
f rec {
pkgs = nixpkgs.legacyPackages.${system};
f {
inherit system;
pkgs = nixpkgs.legacyPackages.${system};
bindingPkgs = binding.packages.${system};
selfPkgs = self.packages.${system};
}
);
in
{
devShells = forAllSystems (
{ pkgs, system }:
packages = forAllSystems (
{
default = pkgs.mkShell {
packages = with pkgs; [
(pkgs.symlinkJoin
{
name = "rust-toolchain";
paths = with pkgs; [
rustc
cargo
rustPlatform.rustcSrc
rustfmt
clippy
cargo-expand
cargo-tarpaulin
];
})
dotnet-sdk_8
gcc
gnumake
xe
xz
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
];
RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}";
};
}
);
formatter = forAllSystems ({ pkgs, ... }: pkgs.nixfmt-rfc-style);
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);
};
}