|
@@ -0,0 +1,50 @@
|
|
|
|
+{
|
|
|
|
+ description = "dragonos-nix-dev";
|
|
|
|
+ inputs = {
|
|
|
|
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
+ fenix.url = "github:nix-community/fenix";
|
|
|
|
+ fenix.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
+ utils.url = "github:numtide/flake-utils";
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ outputs = { self, nixpkgs, fenix, utils, ... } @ inputs:
|
|
|
|
+ utils.lib.eachDefaultSystem (system:
|
|
|
|
+ let
|
|
|
|
+ pkgs = nixpkgs.legacyPackages.${system};
|
|
|
|
+ rustVer = fenix.packages.${system}.fromToolchainName {
|
|
|
|
+ name = "nightly-2024-11-05";
|
|
|
|
+ sha256 = "sha256-muM2tfsMpo2gsFsofhwHutPWgiPjjuwfBUvYCrwomAY=";
|
|
|
|
+ };
|
|
|
|
+ # 组合工具链并提取二进制路径
|
|
|
|
+ rustToolChain = rustVer.withComponents [
|
|
|
|
+ "cargo"
|
|
|
|
+ "clippy"
|
|
|
|
+ "rust-src"
|
|
|
|
+ "rustfmt"
|
|
|
|
+ "rust-analyzer"
|
|
|
|
+ ];
|
|
|
|
+ in {
|
|
|
|
+ devShells.default = pkgs.mkShell {
|
|
|
|
+ # 基础工具链
|
|
|
|
+ buildInputs = with pkgs; [
|
|
|
|
+ git
|
|
|
|
+ llvm
|
|
|
|
+ libclang
|
|
|
|
+ rustToolChain
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ env = {
|
|
|
|
+ LIBCLANG_PATH = "${pkgs.libclang.lib}/lib";
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ # Shell启动脚本
|
|
|
|
+ shellHook = ''
|
|
|
|
+ '';
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ # 兼容旧版nix-shell命令
|
|
|
|
+ defaultPackage = self.devShells.${system}.default;
|
|
|
|
+ }
|
|
|
|
+ );
|
|
|
|
+}
|