{ description = "dragonos-nix-dev"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; fenix.url = "github:nix-community/fenix"; fenix.inputs.nixpkgs.follows = "nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, fenix, flake-utils, ... }@inputs: flake-utils.lib.eachDefaultSystem ( system: let pkgs = nixpkgs.legacyPackages.${system}; rust-toolchain = fenix.packages.${system}.fromToolchainFile { file = ../../kernel/rust-toolchain.toml; sha256 = "sha256-3JA9u08FrvsLdi5dGIsUeQZq3Tpn9RvWdkLus2+5cHs="; }; in { devShells.default = pkgs.mkShell { # 基础工具链 buildInputs = with pkgs; [ git llvm libclang rust-toolchain gcc ]; env = { LIBCLANG_PATH = "${pkgs.libclang.lib}/lib"; USING_DRAGONOS_NIX_ENV = 1; }; # Shell启动脚本 shellHook = '' echo "欢迎进入 DragonOS Nix 开发环境!" echo "要运行 DragonOS,请构建内核、rootfs,再QEMU运行" echo " 构建内核: make kernel" echo " 构建 rootfs: nix run .#rootfs-x86_64" echo " QEMU 运行: nix run .#start-x86_64" echo " 文档: https://docs.dragonos.org.cn/" ''; }; # 兼容旧版nix-shell命令 defaultPackage = self.devShells.${system}.default; } ); }