{ perSystem = { config, self', inputs', pkgs, lib, system, ... }: let osxDependencies = with pkgs; lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security darwin.apple_sdk.frameworks.CoreServices ]; cargoTomlContents = builtins.readFile ../Cargo.toml; version = (builtins.fromTOML cargoTomlContents).package.version; echo-net = pkgs.rustPlatform.buildRustPackage { inherit version; name = "cll2v0"; buildInputs = with pkgs; [openssl] ++ osxDependencies; nativeBuildInputs = with pkgs; [pkg-config openssl.dev]; src = let baseDir = ./../.; fileHasAnySuffix = fileSuffixes: file: (lib.lists.any (s: lib.hasSuffix s file.name) fileSuffixes); rustFilter = basePath: ( let mainFilter = lib.fileset.fileFilter (fileHasAnySuffix [".rs" ".toml"]) basePath; in lib.fileset.unions [mainFilter (basePath + "/Cargo.toml") (basePath + "/Cargo.lock")] ); in pkgs.lib.fileset.toSource { root = baseDir; fileset = rustFilter baseDir; }; cargoLock.lockFile = ../Cargo.lock; meta = { description = "Cardano Lightning L2 V0"; homepage = "cardano-lightning.org"; # license = licenses.mit; }; }; packages = { echo-net = echo-net; default = packages.echo-net; }; # FIXME :: I don't know if this is necessary, # but I don't know to fix it. # overlays.default = final: prev: {echo-net = packages.echo-net;}; gitRev = if (builtins.hasAttr "rev" self') then self'.rev else "dirty"; in { inherit packages; # overlays; devShells.default = pkgs.mkShell { nativeBuildInputs = [ config.treefmt.build.wrapper ]; shellHook = '' export GIT_REVISION=${gitRev} ${config.pre-commit.installationScript} ''; buildInputs = with pkgs; [ pkg-config openssl cargo-insta (pkgs.rust-bin.stable.latest.default.override { extensions = ["rust-src" "clippy" "rustfmt" "rust-analyzer"]; # targets = [ "wasm32-unknown-unknown" ]; }) sqlx-cli sqlite # nodePackages_latest.nodejs # nodePackages_latest.typescript-language-server # cmake # wasm-pack # protobuf # sqlite ] ++ osxDependencies; }; }; }