mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-09 14:48:08 -05:00
130 lines
3.9 KiB
Nix
130 lines
3.9 KiB
Nix
# Nix flake
|
|
#
|
|
# To use it, install Nix & Nix flakes (see https://nixos.wiki/wiki/Flakes)
|
|
# Then use these commands to get a development shell, build and run binaries:
|
|
# $ cd contrib
|
|
# $ nix develop
|
|
# $ nix build '.#darkfi-ircd'
|
|
# $ nix run '.#darkfi-ircd'
|
|
|
|
{
|
|
description = "DarkFi";
|
|
|
|
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-22.05";
|
|
inputs.utils.url = "github:numtide/flake-utils";
|
|
inputs.rust-overlay.url = "github:oxalica/rust-overlay";
|
|
|
|
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.62.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";
|
|
src = ../.;
|
|
cargoLock = {
|
|
lockFile = ../Cargo.lock;
|
|
outputHashes = {
|
|
"term_grid-0.2.0" = "sha256-wl4ZlFjY34xPuMpXdX1a/g9YUomKLIYp2U8r9/goti0=";
|
|
"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;
|
|
};
|
|
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;
|
|
};
|
|
});
|
|
}
|