generated from ProcyOS/rust-template
90 lines
2.5 KiB
Nix
90 lines
2.5 KiB
Nix
{
|
|
description = "rand-testsuite";
|
|
|
|
inputs = {
|
|
nixpkgs.url = github:NixOS/nixpkgs;
|
|
flake-utils.url = github:numtide/flake-utils;
|
|
|
|
rust-overlay = {
|
|
url = github:oxalica/rust-overlay;
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
};
|
|
|
|
cargo2nix = {
|
|
url = github:DarkKirb/cargo2nix/master;
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
inputs.rust-overlay.follows = "rust-overlay";
|
|
};
|
|
flake-compat.url = "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz";
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
flake-utils,
|
|
rust-overlay,
|
|
cargo2nix,
|
|
...
|
|
} @ inputs:
|
|
flake-utils.lib.eachSystem ["x86_64-linux"] (system: let
|
|
overlays = [
|
|
cargo2nix.overlays.default
|
|
(import rust-overlay)
|
|
];
|
|
pkgs = import nixpkgs {
|
|
inherit system overlays;
|
|
};
|
|
registryDownloadPaths = {
|
|
"sparse+https://git.chir.rs/api/packages/ProcyOS/cargo/" = "https://git.chir.rs/api/packages/ProcyOS/cargo/api/v1/crates";
|
|
};
|
|
rustPkgs = pkgs.rustBuilder.makePackageSet {
|
|
packageFun = import ./Cargo.nix;
|
|
rustChannel = "nightly";
|
|
rustVersion = "latest";
|
|
packageOverrides = pkgs: pkgs.rustBuilder.overrides.all;
|
|
rootFeatures = [
|
|
"rand_testsuite/default"
|
|
"rand_testsuite/full"
|
|
];
|
|
fetchCrateAlternativeRegistry = {
|
|
index,
|
|
name,
|
|
version,
|
|
sha256,
|
|
}:
|
|
pkgs.fetchurl {
|
|
name = "${name}-${version}.tar.gz";
|
|
url = "${registryDownloadPaths.${index}}/${name}/${version}/download";
|
|
inherit sha256;
|
|
};
|
|
};
|
|
in rec {
|
|
devShells.default = with pkgs;
|
|
mkShell {
|
|
buildInputs = [
|
|
(rust-bin.nightly.latest.default.override {
|
|
extensions = ["rust-src"];
|
|
})
|
|
cargo2nix.packages.${system}.cargo2nix
|
|
llvmPackages_19.bintools
|
|
rustfilt
|
|
openssl
|
|
pkg-config
|
|
gdb
|
|
];
|
|
};
|
|
packages = pkgs.lib.mapAttrs (_: v: v {}) rustPkgs.workspace;
|
|
nixosModules.default = import ./nixos {
|
|
inherit inputs system;
|
|
};
|
|
checks = pkgs.lib.mapAttrs (_: v: pkgs.rustBuilder.runTests v {}) rustPkgs.workspace;
|
|
hydraJobs = {
|
|
inherit packages checks;
|
|
};
|
|
formatter = pkgs.alejandra;
|
|
});
|
|
}
|
|
# Trick renovate into working: "github:NixOS/nixpkgs/nixpkgs-unstable"
|
|
|