2025-07-28 15:18:01 +00:00
|
|
|
|
{
|
|
|
|
|
|
description = "dragonos-nix-dev";
|
|
|
|
|
|
inputs = {
|
2025-12-26 10:36:13 +00:00
|
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
2025-07-28 15:18:01 +00:00
|
|
|
|
fenix.url = "github:nix-community/fenix";
|
|
|
|
|
|
fenix.inputs.nixpkgs.follows = "nixpkgs";
|
2025-12-26 10:36:13 +00:00
|
|
|
|
flake-utils.url = "github:numtide/flake-utils";
|
2025-07-28 15:18:01 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
2025-12-26 10:36:13 +00:00
|
|
|
|
outputs =
|
|
|
|
|
|
{
|
|
|
|
|
|
self,
|
|
|
|
|
|
nixpkgs,
|
|
|
|
|
|
fenix,
|
|
|
|
|
|
flake-utils,
|
|
|
|
|
|
...
|
|
|
|
|
|
}@inputs:
|
|
|
|
|
|
flake-utils.lib.eachDefaultSystem (
|
|
|
|
|
|
system:
|
2025-07-28 15:18:01 +00:00
|
|
|
|
let
|
|
|
|
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
2025-12-26 10:36:13 +00:00
|
|
|
|
rust-toolchain = fenix.packages.${system}.fromToolchainFile {
|
2025-11-03 05:44:21 +00:00
|
|
|
|
file = ../../kernel/rust-toolchain.toml;
|
2025-12-26 10:36:13 +00:00
|
|
|
|
sha256 = "sha256-3JA9u08FrvsLdi5dGIsUeQZq3Tpn9RvWdkLus2+5cHs=";
|
2025-07-28 15:18:01 +00:00
|
|
|
|
};
|
2025-12-26 10:36:13 +00:00
|
|
|
|
in
|
|
|
|
|
|
{
|
2025-07-28 15:18:01 +00:00
|
|
|
|
devShells.default = pkgs.mkShell {
|
|
|
|
|
|
# 基础工具链
|
|
|
|
|
|
buildInputs = with pkgs; [
|
|
|
|
|
|
git
|
|
|
|
|
|
llvm
|
|
|
|
|
|
libclang
|
2025-12-26 10:36:13 +00:00
|
|
|
|
rust-toolchain
|
|
|
|
|
|
gcc
|
2025-07-28 15:18:01 +00:00
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
env = {
|
2025-12-26 10:36:13 +00:00
|
|
|
|
LIBCLANG_PATH = "${pkgs.libclang.lib}/lib";
|
|
|
|
|
|
USING_DRAGONOS_NIX_ENV = 1;
|
|
|
|
|
|
};
|
2025-07-28 15:18:01 +00:00
|
|
|
|
|
|
|
|
|
|
# Shell启动脚本
|
|
|
|
|
|
shellHook = ''
|
2025-12-26 10:36:13 +00:00
|
|
|
|
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/"
|
2025-07-28 15:18:01 +00:00
|
|
|
|
'';
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
# 兼容旧版nix-shell命令
|
|
|
|
|
|
defaultPackage = self.devShells.${system}.default;
|
|
|
|
|
|
}
|
|
|
|
|
|
);
|
2025-12-26 10:36:13 +00:00
|
|
|
|
}
|