Rust/flake.nix

40 lines
1.1 KiB
Nix
Raw Normal View History

2023-05-13 13:21:58 -04:00
{
2023-05-13 14:37:05 -04:00
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
utils.url = "github:numtide/flake-utils";
naersk = {
url = "github:nix-community/naersk";
inputs.nixpkgs.follows = "nixpkgs";
};
# Used for rust compiler
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
};
2023-05-13 13:21:58 -04:00
2023-05-13 14:37:05 -04:00
description = "Rust Toolchain and Utility Flake";
2023-05-13 13:21:58 -04:00
2023-05-13 14:37:05 -04:00
outputs = { self, nixpkgs, utils, ... }@inputs:
(utils.lib.eachDefaultSystem (system: {
packages = let
sources = builtins.fromJSON (builtins.readFile ./sources/sources.json);
pkgs = import nixpkgs {
inherit system;
overlays = [ (import inputs.rust-overlay) ];
};
rust = pkgs.rust-bin.stable.latest.default.override {
extensions = [ "llvm-tools-preview" ];
};
naersk-lib = inputs.naersk.lib."${system}".override {
rustc = rust;
cargo = rust;
};
in builtins.mapAttrs (name: source:
naersk-lib.buildPackage {
pname = source.pname;
src = pkgs.fetchCrate source;
}) sources;
}));
2023-05-13 13:21:58 -04:00
}