curiOS/flake.nix
2026-08-02 16:02:29 +02:00

55 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
gdb
mold
limine-full
qemu
OVMF
mtools
];
buildInputs = [
udev stdenv.cc.cc.lib
];
LD_LIBRARY_PATH = lib.makeLibraryPath buildInputs;
OVMF_PATH = OVMF.fd;
};
};
});
}