diff --git a/flake.lock b/flake.lock index f51971e..daf37b8 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1749494155, - "narHash": "sha256-FG4DEYBpROupu758beabUk9lhrblSf5hnv84v1TLqMc=", + "lastModified": 1758791193, + "narHash": "sha256-F8WmEwFoHsnix7rt290R0rFXNJiMbClMZyIC/e+HYf0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "88331c17ba434359491e8d5889cce872464052c2", + "rev": "25e53aa156d47bad5082ff7618f5feb1f5e02d01", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 60cfbb6..9567822 100644 --- a/flake.nix +++ b/flake.nix @@ -6,7 +6,7 @@ }; outputs = - inputs@{ + { self, nixpkgs, }: @@ -24,15 +24,45 @@ system: f rec { pkgs = nixpkgs.legacyPackages.${system}; + selfPkgs = self.packages.${system}; inherit system; } ); in - rec { - devShells = forAllSystems ( - { pkgs, system }: + { + packages = forAllSystems ( + { pkgs, selfPkgs, ... }: { - default = pkgs.mkShell rec { + servicepoint-binding-uniffi = pkgs.rustPlatform.buildRustPackage { + pname = "servicepoint-binding-uniffi"; + version = "0.13.1"; + + src = ./.; + cargoDeps = pkgs.rustPlatform.importCargoLock { lockFile = ./Cargo.lock; }; + + nativeBuildInputs = with pkgs; [ + pkg-config + ]; + + buildInputs = with pkgs; [ + xe + xz + ]; + + postInstall = '' + mkdir -p $out/lib/pkgconfig + sed "s:\$out:$out:g" ${./servicepoint-binding-uniffi.pc.in} | sed "s:\$version:$version:g" > $out/lib/pkgconfig/servicepoint-binding-uniffi.pc + ''; + }; + default = selfPkgs.servicepoint-binding-uniffi; + } + ); + + devShells = forAllSystems ( + { pkgs, selfPkgs, ... }: + { + default = pkgs.mkShell { + inputsFrom = [ selfPkgs.default ]; packages = with pkgs; [ (pkgs.symlinkJoin { name = "rust-toolchain"; @@ -46,15 +76,12 @@ cargo-tarpaulin ]; }) - xe - xz - pkg-config ]; RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}"; }; } ); - formatter = forAllSystems ({ pkgs, ... }: pkgs.nixfmt-rfc-style); + formatter = forAllSystems ({ pkgs, ... }: pkgs.nixfmt-tree); }; } diff --git a/servicepoint-binding-uniffi.pc.in b/servicepoint-binding-uniffi.pc.in new file mode 100644 index 0000000..622867c --- /dev/null +++ b/servicepoint-binding-uniffi.pc.in @@ -0,0 +1,5 @@ +Name: servicepoint-binding-uniffi +Description: UniFFI bindings for the servicepoint library +Version: $version +URL: https://git.berlin.ccc.de/servicepoint/servicepoint-binding-uniffi +Libs: -L$out/lib -lservicepoint_binding_uniffi