lssa/flake.nix

97 lines
2.3 KiB
Nix
Raw Permalink Normal View History

2026-02-03 14:52:12 +01:00
{
description = "Logos Execution Zone";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
crane.url = "github:ipetkov/crane";
};
outputs =
{
2026-02-03 15:07:19 +01:00
self,
2026-02-03 14:52:12 +01:00
nixpkgs,
rust-overlay,
crane,
...
}:
let
systems = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
"x86_64-windows"
];
forAll = nixpkgs.lib.genAttrs systems;
mkPkgs =
system:
import nixpkgs {
inherit system;
overlays = [ rust-overlay.overlays.default ];
};
in
{
packages = forAll (
system:
let
pkgs = mkPkgs system;
rustToolchain = pkgs.rust-bin.stable.latest.default;
craneLib = (crane.mkLib pkgs).overrideToolchain rustToolchain;
src = ./.;
commonArgs = {
inherit src;
buildInputs = [ pkgs.openssl ];
nativeBuildInputs = [
pkgs.pkg-config
pkgs.clang
pkgs.llvmPackages.libclang.lib
];
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
};
2026-02-03 15:39:23 +01:00
walletFfiPackage = craneLib.buildPackage (
2026-02-03 15:07:19 +01:00
commonArgs
// {
2026-02-03 14:52:12 +01:00
pname = "logos-execution-zone-wallet-ffi";
version = "0.1.0";
cargoExtraArgs = "-p wallet-ffi";
postInstall = ''
mkdir -p $out/include
cp wallet-ffi/wallet_ffi.h $out/include/
2026-02-03 15:07:19 +01:00
''
+ pkgs.lib.optionalString pkgs.stdenv.isDarwin ''
2026-02-03 14:52:12 +01:00
install_name_tool -id @rpath/libwallet_ffi.dylib $out/lib/libwallet_ffi.dylib
'';
}
);
in
{
2026-02-03 15:39:23 +01:00
wallet = walletFfiPackage;
default = walletFfiPackage;
2026-02-03 14:52:12 +01:00
}
);
2026-02-03 15:07:19 +01:00
devShells = forAll (
system:
let
pkgs = mkPkgs system;
2026-02-03 15:39:23 +01:00
walletFfiPackage = self.packages.${system}.wallet;
walletFfiShell = pkgs.mkShell {
inputsFrom = [ walletFfiPackage ];
};
2026-02-03 15:07:19 +01:00
in
{
2026-02-03 15:39:23 +01:00
wallet = walletFfiShell;
default = walletFfiShell;
2026-02-03 15:07:19 +01:00
}
);
2026-02-03 14:52:12 +01:00
};
}