diff --git a/flake.lock b/flake.lock index 9e70e85..daf37b8 100644 --- a/flake.lock +++ b/flake.lock @@ -2,16 +2,16 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1739357830, - "narHash": "sha256-9xim3nJJUFbVbJCz48UP4fGRStVW5nv4VdbimbKxJ3I=", + "lastModified": 1758791193, + "narHash": "sha256-F8WmEwFoHsnix7rt290R0rFXNJiMbClMZyIC/e+HYf0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "0ff09db9d034a04acd4e8908820ba0b410d7a33a", + "rev": "25e53aa156d47bad5082ff7618f5feb1f5e02d01", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-24.11", + "ref": "nixos-25.05", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index f619fe0..9567822 100644 --- a/flake.nix +++ b/flake.nix @@ -2,11 +2,11 @@ description = "Flake for the servicepoint library."; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; }; 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