54 lines
1.2 KiB
Nix
54 lines
1.2 KiB
Nix
{
|
|
description = "An x86 kernel written in Rust";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
rust-overlays.url = "github:oxalica/rust-overlay";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs = { nixpkgs, flake-utils, rust-overlays, ...}:
|
|
flake-utils.lib.eachDefaultSystem (system: let
|
|
overlays = [
|
|
(import rust-overlays)
|
|
];
|
|
pkgs = import nixpkgs {
|
|
inherit system overlays;
|
|
config.allowUnfree = true;
|
|
};
|
|
|
|
rust-override = {
|
|
extensions = ["rust-src" "rust-analyzer" "miri"];
|
|
targets = [ "x86_64-unknown-linux-gnu" ];
|
|
};
|
|
|
|
rust-pkg = pkgs.rust-bin.nightly.latest.default.override rust-override;
|
|
in with pkgs; {
|
|
devShells = {
|
|
default = mkShell rec {
|
|
name = "rust-osdev";
|
|
|
|
nativeBuildInputs = [
|
|
pkg-config
|
|
rust-pkg
|
|
clang
|
|
gcc
|
|
mold
|
|
|
|
limine-full
|
|
qemu
|
|
OVMF
|
|
mtools
|
|
];
|
|
|
|
buildInputs = [
|
|
udev stdenv.cc.cc.lib
|
|
];
|
|
|
|
LD_LIBRARY_PATH = lib.makeLibraryPath buildInputs;
|
|
OVMF_PATH = OVMF.fd;
|
|
};
|
|
};
|
|
});
|
|
}
|