Fixed Flake.nix

This fixes flake.nix and introduce the use of crane to create the rust package
This commit is contained in:
actias-nebula
2023-05-28 19:56:59 +02:00
committed by parazyd
parent e71269c7bf
commit f764b4e2de

View File

@@ -6,125 +6,113 @@
# $ nix develop
# $ nix build '.#darkfi-ircd'
# $ nix run '.#darkfi-ircd'
{
description = "DarkFi";
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-22.11";
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
inputs.utils.url = "github:numtide/flake-utils";
inputs.rust-overlay.url = "github:oxalica/rust-overlay";
inputs.crane.url = "github:ipetkov/crane";
inputs.crane.inputs.nixpkgs.follows = "nixpkgs";
outputs = { self, nixpkgs, utils, rust-overlay }:
utils.lib.eachDefaultSystem (system:
let
overlays = [
(import rust-overlay)
];
pkgs = import nixpkgs rec {
inherit system overlays;
};
rust-bin = pkgs.rust-bin.stable."1.66.0".default.override {
extensions = [ "rust-src" ];
};
buildRustPackage = (pkgs.makeRustPlatform {
cargo = rust-bin;
rustc = rust-bin;
}).buildRustPackage;
myNativeBuildInputs = with pkgs; [
pkg-config
gnumake
cmake
clang
libclang
llvm
];
myBuildInputs = with pkgs; [
expat
fontconfig
freetype
openssl
];
myBuildRustPackage = attrs:
buildRustPackage ({
version = "0.3.0";
outputs = {
self,
nixpkgs,
utils,
crane,
}:
utils.lib.eachDefaultSystem (system: let
craneLib = crane.lib.${system};
pkgs = import nixpkgs {
inherit system;
};
myNativeBuildInputs = with pkgs; [
pkg-config
gnumake
cmake
clang
libclang
llvm
];
myBuildInputs = with pkgs; [
expat
fontconfig
freetype
openssl
];
myBuildRustPackage = attrs:
craneLib.buildPackage ({
src = ../.;
cargoLock = {
lockFile = ../Cargo.lock;
outputHashes = {
"term_grid-0.2.0" = "sha256-wl4ZlFjY34xPuMpXdX1a/g9YUomKLIYp2U8r9/goti0=";
"halo2_proofs-0.2.0" = "sha256-WkDg1SgGPH9KyEAgwyl+OXrPk+w9Rd+8ZC+bbGx0Yek=";
#"dashu-0.2.0" = "sha256-gD1eb0N6sxEm6vpaQWqdodRGPvAlsPcV2Jxp63VQZZ4=";
};
};
nativeBuildInputs = myNativeBuildInputs;
buildInputs = myBuildInputs;
#RUST_BACKTRACE=1;
#RUST_LOG="trace";
} // attrs);
in rec {
packages = rec {
darkfi-drk = myBuildRustPackage rec {
pname = "darkfi-drk";
buildAndTestSubdir = "./bin/drk";
};
darkfi-darkfid = myBuildRustPackage rec {
pname = "darkfi-darkfid";
buildAndTestSubdir = "./bin/darkfid";
};
darkfi-dnetview = myBuildRustPackage rec {
pname = "darkfi-dnetview";
buildAndTestSubdir = "./bin/dnetview";
};
darkfi-ircd = myBuildRustPackage rec {
pname = "darkfi-ircd";
buildAndTestSubdir = "./bin/ircd";
};
darkfi-tau = myBuildRustPackage rec {
pname = "darkfi-tau";
buildAndTestSubdir = "./bin/tau";
};
darkfi-taud = myBuildRustPackage rec {
pname = "darkfi-taud";
buildAndTestSubdir = "./bin/taud";
};
darkfi-zkas = myBuildRustPackage rec {
pname = "darkfi-zkas";
buildAndTestSubdir = "./bin/zkas";
};
default = darkfi-drk;
}
// attrs);
in rec {
packages = rec {
darkfi-drk = myBuildRustPackage {
pname = "darkfi-drk";
buildAndTestSubdir = "./bin/drk";
};
defaultPackage = packages.default; # compat
darkfi-darkfid = myBuildRustPackage {
pname = "darkfi-darkfid";
buildAndTestSubdir = "./bin/darkfid";
};
darkfi-dnetview = myBuildRustPackage {
pname = "darkfi-dnetview";
buildAndTestSubdir = "./bin/dnetview";
};
darkfi-ircd = myBuildRustPackage {
pname = "darkfi-ircd";
cargoExtraArgs = "--package=ircd";
buildAndTestSubdir = "./bin/ircd";
};
darkfi-tau = myBuildRustPackage {
pname = "darkfi-tau";
buildAndTestSubdir = "./bin/tau";
};
darkfi-taud = myBuildRustPackage {
pname = "darkfi-taud";
buildAndTestSubdir = "./bin/taud";
};
darkfi-zkas = myBuildRustPackage {
pname = "darkfi-zkas";
buildAndTestSubdir = "./bin/zkas";
};
default = darkfi-drk;
};
defaultPackage = packages.default; # compat
apps = rec {
darkfi-drk = utils.lib.mkApp {
drv = packages.darkfi-drk;
exePath = "/bin/drk";
};
darkfi-darkfid = utils.lib.mkApp {
drv = packages.darkfi-darkfid;
exePath = "/bin/darkfid";
};
darkfi-dnetview = utils.lib.mkApp {
drv = packages.darkfi-dnetview;
exePath = "/bin/dnetview";
};
darkfi-ircd = utils.lib.mkApp {
drv = packages.darkfi-ircd;
exePath = "/bin/ircd";
};
darkfi-tau = utils.lib.mkApp {
drv = packages.darkfi-tau;
exePath = "/bin/tau";
};
darkfi-taud = utils.lib.mkApp {
drv = packages.darkfi-taud;
exePath = "/bin/taud";
};
darkfi-zkas = utils.lib.mkApp {
drv = packages.darkfi-zkas;
exePath = "/bin/zkas";
};
default = darkfi-drk;
apps = rec {
darkfi-drk = utils.lib.mkApp {
drv = packages.darkfi-drk;
exePath = "/bin/drk";
};
});
darkfi-darkfid = utils.lib.mkApp {
drv = packages.darkfi-darkfid;
exePath = "/bin/darkfid";
};
darkfi-dnetview = utils.lib.mkApp {
drv = packages.darkfi-dnetview;
exePath = "/bin/dnetview";
};
darkfi-ircd = utils.lib.mkApp {
drv = packages.darkfi-ircd;
exePath = "/bin/ircd";
};
darkfi-tau = utils.lib.mkApp {
drv = packages.darkfi-tau;
exePath = "/bin/tau";
};
darkfi-taud = utils.lib.mkApp {
drv = packages.darkfi-taud;
exePath = "/bin/taud";
};
darkfi-zkas = utils.lib.mkApp {
drv = packages.darkfi-zkas;
exePath = "/bin/zkas";
};
default = darkfi-drk;
};
});
}